Durante il tentativo di sovrapporre una nuova riga a un ggplot esistente, ricevo il seguente errore:
Error: ggplot2 doesn't know how to deal with data of class uneval
La prima parte del mio codice funziona bene. Di seguito è riportata un'immagine dei dati "recenti" sulla generazione di energia eolica oraria da un mercato dell'energia elettrica degli Stati Uniti del Midwest.
Ora voglio sovrapporre in rosso le osservazioni degli ultimi due giorni. Dovrebbe essere facile ma non riesco a capire perché ricevo un errore.
Qualsiasi assistenza sarebbe molto apprezzata.
Di seguito è riportato un esempio riproducibile:
# 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