Проблема: у меня есть три кадра данных, "d1", "d2" и "d3", имеющие три строки, X1, X2 и значение. Я хочу построить несколько линий, используя X2 в качестве индекса. Я хочу создать al oop, который делает то же самое для каждого кадра данных. Код должен работать с любым фреймом данных.
Мой код
for (i in 1:3){
p<-as.name(paste("d", i, sep = ""))%>%
ggplot(aes(x=X1, y=value, colour=as.factor(X2)))+
labs(title =paste("Plot", i, sep =" "), x = "X axis", y = "value")+
geom_line()+
theme(legend.position="none")+
theme_classic2()
assign(paste("p", i, sep =""), p)
}
Функция работает из l oop, но когда я запускаю l oop, я получаю ошибку:
Error: `data` must be a data frame, or other object coercible by `fortify()`, not a character vector
Когда я попробовал, была возвращена та же ошибка:
for (i in 1:3){
p<- ggplot(as.name(paste("d", i, sep = "")), aes(x=X1, y=value, colour=as.factor(X2)))+
labs(title =paste("Plot", i, sep =" "), x = "X axis", y = "value")+
geom_line()+
theme(legend.position="none")+
theme_classic2()
assign(paste("p", i, sep =""), p)
}
Я не смог найти ответ в SO.
Я думаю, что он мог чем-то заняться с paste()
внутри l oop.
Надеюсь, кто-то может помочь.