我将很多.xls文件作为单独的数据框加载到我的全局环境中,现在我想制作图形(并使用ggplot函数)我可以用它来“循环”吗?如何正确编写此代码?我尝试过这样的事情:
files <- list.files("path", pattern = "xls?$", full.names = T)
list <- lapply(files, read_excel)
for (i in 1:length(list))
assign(paste(paste("file", i, sep=""), "df", sep="."), list[[i]])
assign(melt(list[[i]], id.vars="Cele"), list[[i]])
list[[i]]<-ggplot(list[[i]], aes(x=variable,y=value))+geom_bar(stat="identity")
ggsave(list[[i]],filename=paste("myplot",i,".png",sep=""))
有人可以帮助我吗? :)
答案 0 :(得分:0)
这是让你入门的东西:
l <- list(mtcars,mtcars[1:15,],mtcars[16:32,])
plot_list <- vector("list",length(l))
p <- ggplot(data = l[[1]],aes(x = mpg,y = disp)) + geom_point()
for (i in seq_along(l)){
plot_list[[i]] <- p %+% l[[i]]
}
您可以选择使用lapply
和list.files
将数据读入单个对象(列表)。之后,您使用assign
向后退了一步,将它们从一个不错的方便列表中删除到单独的对象中。尝试避免assign
,直到你对真正需要的时候有充分的理解。
我使用了一个稍微不必要的技巧,%+%
,只是为了说明一些有用的东西。它允许采用现有的绘图并在其上投掷不同的数据帧。它有时可以避免编写重复的ggplot
代码。