R script visual no funciona en el servicio

Un usuario Pregunto ✅

paltus

Hola,

Creé un visual R que carga datos y crea un calendario. Todo funciona bien en el escritorio.
Pero en servicio me sale un error: Error en as.POSIXlt.default (x, tz = tz): no sé cómo convertir ‘x’ a la clase «POSIXlt»
La fecha es solo una tabla de fechas:

Fecha
2019-01-01
2019-01-03
2019-01-02
2019-01-04
2019-01-05

Biblioteca(ggplot2)

dfr <- conjunto de datos
dfrPSdía <- factor(strftime(dfrPSFecha,formato=«%A»),niveles=C(«Domingo»,«Sábado»,«Viernes»,«Jueves»,«Miércoles»,«Martes»,«Lunes»))
dfrPSsemana <- factor(strftime(dfrPSFecha,formato=«% V»))
dfrPSmes <- factor(strftime(dfrPSFecha,formato=«%B»),niveles=C(«Enero»,«Febrero»,«Marcha»,«Abril»,«Mayo»,«Junio»,«Julio»,«Agosto»,«Septiembre»,«Octubre»,«Noviembre»,«Diciembre»))
dfrPSfecha <- factor(strftime(dfrPSFecha,formato=«%D»))

# trama
pag <- ggplot(dfr,aes(X=semana,y=día))+
geom_text(aes(etiqueta=pegar(fecha,sep =«
«)))+
scale_fill_manual(valores=C(«# 8dd3c7»,«# ffffb3»,«# fb8072»,«# d3d3d3»))+
facet_grid(~mes,escamas=«gratis»,espacio=«gratis»)+
laboratorios(X=«Semana»,y=«»)+
theme_bw(tamaño_base=12)+
tema(legend.title=element_blank(),
panel.grid=element_blank(),
panel.border=element_blank(),
eje.ticks=element_blank(),
strip.background=element_blank(),
leyenda.posición=«cima»,
leyenda.justificación=«Derecha»,
leyenda.dirección=«horizontal»,
legend.key.size=unidad(0.4,«cm»),
legend.spacing.x=unidad(0,3,«cm»))

trama(pag)

¿Como puedo resolver esto?

¡Gracias por adelantado!

Hola @paltus,

Según el mensaje de error, parece que el formato de datos no se reconoce correctamente en el servicio Power Bi. Puede consultar el siguiente enlace para usar las funciones ‘as.Date’ o ‘as.POSIXlt’ para convertir estos valores de fecha:

Error en POSIXlt

library(ggplot2)

dfr <- dataset
dfr$day <- factor(strftime(as.POSIXlt(dfr$Date,format = "%Y-%d-%m"),format="%A"),levels=c("Sunday","Saturday","Friday","Thursday","Wednesday","Tuesday","Monday"))
dfr$week <- factor(strftime(as.POSIXlt(dfr$Date,format = "%Y-%d-%m"),format="%V"))
dfr$month <- factor(strftime(as.POSIXlt(dfr$Date,format = "%Y-%d-%m"),format="%B"),levels=c("January","February","March","April","May","June","July","August","September","October","November","December"))
dfr$ddate <- factor(strftime(as.POSIXlt(dfr$Date,format = "%Y-%d-%m"),format="%d"))

# plot
p <- ggplot(dfr,aes(x=week,y=day))+
geom_text(aes(label=paste(ddate,sep ="
")))+
scale_fill_manual(values=c("#8dd3c7","#ffffb3","#fb8072","#d3d3d3"))+
facet_grid(~month,scales="free",space="free")+
labs(x="Week",y="")+
theme_bw(base_size=12)+
theme(legend.title=element_blank(),
panel.grid=element_blank(),
panel.border=element_blank(),
axis.ticks=element_blank(),
strip.background=element_blank(),
legend.position="top",
legend.justification="right",
legend.direction="horizontal",
legend.key.size=unit(0.4,"cm"),
legend.spacing.x=unit(0.3,"cm"))

plot(p)

Saludos,

Xiaoxin Sheng

Hola @paltus,

Según el mensaje de error, parece que el formato de datos no se reconoce correctamente en el servicio Power Bi. Puede consultar el siguiente enlace para usar las funciones ‘as.Date’ o ‘as.POSIXlt’ para convertir estos valores de fecha:

Error en POSIXlt

library(ggplot2)

dfr <- dataset
dfr$day <- factor(strftime(as.POSIXlt(dfr$Date,format = "%Y-%d-%m"),format="%A"),levels=c("Sunday","Saturday","Friday","Thursday","Wednesday","Tuesday","Monday"))
dfr$week <- factor(strftime(as.POSIXlt(dfr$Date,format = "%Y-%d-%m"),format="%V"))
dfr$month <- factor(strftime(as.POSIXlt(dfr$Date,format = "%Y-%d-%m"),format="%B"),levels=c("January","February","March","April","May","June","July","August","September","October","November","December"))
dfr$ddate <- factor(strftime(as.POSIXlt(dfr$Date,format = "%Y-%d-%m"),format="%d"))

# plot
p <- ggplot(dfr,aes(x=week,y=day))+
geom_text(aes(label=paste(ddate,sep ="
")))+
scale_fill_manual(values=c("#8dd3c7","#ffffb3","#fb8072","#d3d3d3"))+
facet_grid(~month,scales="free",space="free")+
labs(x="Week",y="")+
theme_bw(base_size=12)+
theme(legend.title=element_blank(),
panel.grid=element_blank(),
panel.border=element_blank(),
axis.ticks=element_blank(),
strip.background=element_blank(),
legend.position="top",
legend.justification="right",
legend.direction="horizontal",
legend.key.size=unit(0.4,"cm"),
legend.spacing.x=unit(0.3,"cm"))

plot(p)

Saludos,

Xiaoxin Sheng

paltus

En respuesta a v-shex-msft

Hola, @ v-shex-msft

Gracias por tu consejo.
Ahora todo funciona bien, cuando uso solo fechas, pero cuando intento agregar medidas, aparece un error.
ejemplo de conjunto de datos:

Datos CR
2019-01-01 50000
2019-01-03 60000
2019-01-02 40000
2019-01-04 30000
2019-01-05 21000

En servicio obtengo solo datos, no datos + CR


333.JPG
222.JPG

Si escribo geom_text como esto:

geom_text (aes (etiqueta = pegar (dfr $‘CR’)
Luego me sale el error: la estética debe tener una longitud de 1 o la misma que los datos (13): etiqueta, x, y

# conjunto de datos <- data.frame (Datos, CR)
# conjunto de datos <- único (conjunto de datos)
Sys.setlocale («LC_TIME», «Inglés»)
Biblioteca(ggplot2)
dfr <- conjunto de datos
dfr $ día <- factor(strftime (as.POSIXlt (dfr $ Datos, formato = «% Y-% m-% d»), formato =«%A»), niveles = c («Domingo»,«Sábado»,«Viernes»,«Jueves»,«Miércoles»,«Martes»,«Lunes»))
dfr $ semana <- factor(strftime (as.POSIXlt (dfr $ Datos, formato = «% Y-% m-% d»), formato =«% V»))
dfr $ mes <- factor(strftime (as.POSIXlt (dfr $ Datos, formato = «% Y-% m-% d»), formato =«%B»), niveles = c («Enero»,«Febrero»,«Marcha»,«Abril»,«Mayo»,«Junio»,«Julio»,«Agosto»,«Septiembre»,«Octubre»,«Noviembre»,«Diciembre»))
dfr $ ddate <- factor(strftime (as.POSIXlt (dfr $ Datos, formato = «% Y-% m-% d»), formato =«%D»))

dfr $ comentario <- «Disponible»

dfr $ comentario <- factor(dfr $ comentario, niveles = c («Disponible»,«Limitado»,«No disponible»,«Fin de semana»))
# trama
p <- ggplot (dfr, aes (x = semana, y = día)) +
geom_tile (aes (llenar = comentario)) +
geom_text (aes (label = paste (ddate, dfr $‘CR’,sep =«
«))) +
scale_fill_manual (valores = c («# 8dd3c7»,«# ffffb3»,«# fb8072»,«# d3d3d3»)) +
facet_grid (~ mes, escalas =«gratis», espacio =«gratis») +
laboratorios (x =«Semana», y =«») +
theme_bw (tamaño_base =12) +
tema (legend.title = element_blank (),
panel.grid = element_blank (),
panel.border = element_blank (),
axis.ticks = element_blank (),
strip.background = element_blank (),
legend.position =«cima»,
legend.justification =«Derecha»,
legend.direction =«horizontal»,
legend.key.size = unidad (0.4,«cm»),
legend.spacing.x = unidad (0,3,«cm»))

trama (p)

¿Puedes ayudarme con este problema, por favor?
Gracias

En respuesta a paltus

Hola @paltus,

Me gustaría sugerirle que consulte el siguiente enlace sobre la función geom_lable:

geom_label

Saludos,

Xiaoxin Sheng

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *