pie instalar ggplot como chart barplot r ggplot2

instalar - ¿Cómo lidiar con el error "data of class uneval" de ggplot2?



ggplot2 r install (3)

Esto también podría ocurrir si se refiere a una variable en el data.frame que no existe. Por ejemplo, recientemente me olvidé de decir ddply para resumir por una de mis variables que utilicé en geom_line para especificar el color de línea. Entonces, ggplot no sabía dónde encontrar la variable que no había creado en la tabla de resumen, y obtuve este error.

Al tratar de superponer una nueva línea a un ggplot existente, recibo el siguiente error:

Error: ggplot2 doesn''t know how to deal with data of class uneval

La primera parte de mi código funciona bien. A continuación se muestra una imagen de los datos de generación eólica "reciente" por hora de un mercado de energía eléctrica de los Estados Unidos del Medio Oeste.

Ahora quiero superponer las observaciones de los últimos dos días en rojo. Debería ser fácil, pero no puedo entender por qué estoy recibiendo un error.

Cualquier ayuda sería muy apreciada.

A continuación se muestra un ejemplo reproducible:

# Read in Wind data fname <- "https://www.midwestiso.org/Library/Repository/Market%20Reports/20130510_hwd_HIST.csv" df <- read.csv(fname, header=TRUE, sep="," , skip=7) df <- df[1:(length(df$MKTHOUR)-5),] # format variables df$MWh <- as.numeric(df$MWh) df$Datetime <- strptime(df$MKTHOUR, "%m/%d/%y %I:%M %p") # Create some variables df$Date <- as.Date(df$Datetime) df$HrEnd <- df$Datetime$hour+1 # Subset recent and last data last.obs <- range(df$Date)[2] df.recent <- subset(df, Date %in% seq(last.obs-30, last.obs-2, by=1)) df.last <- subset(df, Date %in% seq(last.obs-2, last.obs, by=1)) # plot recent in Grey p <- ggplot(df.recent, aes(HrEnd, MWh, group=factor(Date))) + geom_line(color="grey") + scale_y_continuous(labels = comma) + scale_x_continuous(breaks = seq(1,24,1)) + labs(y="MWh") + labs(x="Hour Ending") + labs(title="Hourly Wind Generation") p # plot last two days in Red p <- p + geom_line(df.last, aes(HrEnd, MWh, group=factor(Date)), color="red") p


Otra causa es poner accidentalmente los data=... dentro de los aes(...) lugar de afuera:

RIGHT: ggplot(data=df[df$var7==''9-06'',], aes(x=lifetime,y=rep_rate,group=mdcp,color=mdcp) ...) WRONG: ggplot(aes(data=df[df$var7==''9-06'',],x=lifetime,y=rep_rate,group=mdcp,color=mdcp) ...)

En particular, esto puede suceder cuando usted prototipo de su comando de trazado con qplot() , que no usa un aes() explícito aes() , luego edítelo / cópielo y péguelo en un ggplot()

qplot(data=..., x=...,y=..., ...) ggplot(data=..., aes(x=...,y=...,...))

¡Es una lástima que el mensaje de error de ggplot no falte al argumento de ''datos''! en lugar de esta tontería críptica, porque eso es lo que este mensaje a menudo significa.


cuando agrega un nuevo conjunto de datos a un geom, necesita usar el argumento data= . O ponga los argumentos en el orden correcto mapping=..., data=... Eche un vistazo a los argumentos para ?geom_line .

Así:

p + geom_line(data=df.last, aes(HrEnd, MWh, group=factor(Date)), color="red")

O:

p + geom_line(aes(HrEnd, MWh, group=factor(Date)), df.last, color="red")