I have a large data frame that contains a High, Low, and High-Low, for every column. I also have a Base column. I want to create a graph for each set of prefixes so that the line graph has A_H, A_L, A_HL, and Base, and then the same for all of the other matching prefixes.
date A_H B_H C_H D_H A_L B_L C_L D_L A_HL B_HL C_HL D_HL Base
2/1/18 6 4 6 4 2 3 5 8 9 2 3 5 3
2/2/18 2 4 7 6 5 8 3 9 11 12 5 9 5
2/3/18 8 6 8 9 6 9 7 9 13 13 6 7 5
I have tried multiple approaches without them working.
GraphList <- c("A", "B", "C", "D")
for (i in seq_along(GraphList)){
plot <- ggplot(df, aes(date)) +
geom_line(aes(y=Base, colour='Base')) +
geom_line(aes(y=paste0(i,"High"), colour='High')) +
geom_line(aes(y=paste0(i,"Low"), colour='Low')) +
geom_line(aes(y=paste0(i,"LS"), colour='LS'))
print(plot)
But when I do the above the graphs do not paste the name prefixes from the list, it just spits out 1H and 1L, 2H and 2L, etc. as flat lines in their respective graphs.
I also tried
plot <- ggplot(df, aes(date)) +
geom_line(aes(y=Base, colour='Base')) +
geom_line(aes(y=df[, grepl("_H", colnames(df))], colour='High')) +
geom_line(aes(y=df[, grepl("_L", colnames(df))], colour='Low')) +
geom_line(aes(y=df[, grepl("_LS", colnames(df))], colour='LS'))
print(plot)
Using this method I got the error
Don't know how to automatically pick the scale for object of type tbl_df/tbl/data.frame. Defaulting to continuous
Error: aesthetics must be either length 1 or the same as the data (63): y, colour, x
Thank you in advance.