2015-04-08 52 views
0

我加載了很多.xls文件作爲單獨的數據框到我的全局環境中,現在我想繪製圖形(並使用ggplot函數)我可以用它來做「循環」嗎?如何編寫此代碼是否正確?我試過這樣的事情:
如何一次將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

這裏的東西,讓你開始:

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]] 
} 

你犯了一個不錯的選擇,使用和lapplylist.files的數據讀入一個對象,一個列表。之後,您向後退一步,使用assign將它們從方便的列表中刪除爲單獨的對象。儘量避免assign,直到您對何時真的有必要有充分的理解。

我用一個稍微不必要的技巧,%+%,只是爲了說明一些有用的東西。它允許採取現有的情節並在其上投擲不同的數據幀。它有時可以避免你編寫重複的ggplot代碼。

+0

我有錯誤:「無法找到函數」%+%「」。我能做什麼??感謝幫助! :) –

+0

然後你還沒有加載ggplot,這將是必要做任何ggplot我會想。 – joran

+0

你是對的!謝謝 :) –

相關問題