2016-06-10 64 views
0

親愛的Stackoverflow'ers!將多個地塊r保存爲獨立的jpg

我有簡單的數據庫,應用程序。 130個變量,1500條記錄和大量類似的圖表創建。我儘量避免用手保存它們。 for循環完美適用於繪圖(在RStudio中)。

Here are the data as .csv on dropbox。

data <- read.csv2("data.csv", header=TRUE) 
data <- select(data,v1,v2,v3,v4,v5,v6,v7) 

for (i in data) { 
    sjp.frq(i) 
} 

我想將這些圖作爲單獨的.png或.jpg文件保存在某個目錄中。我發現了一些線索here。代碼如下所示:

data <- select(df,v1,v2,v3,v4,v5,v6,v7) 
variables <- names(data) 

for (i in data) { 
    png(paste0("plots/plot_",names(data)[i],".png")) 
    sjp.frq(i) 
    dev.off() 
} 

我故意簡化了sjp.frq表達式,以避免代碼變得不那麼複雜。

這就是問題所在。我只在文件夾中獲得單個.png文件。我在哪裏犯錯?應該有七個。

此致敬禮,MaciejB。

PS。我遵循使代碼可重現的建議,並添加了我的數據庫樣本。當我使用虹膜時,它可以工作。我的數據似乎有些問題,也許有些不適用?但是當我使用na.omit()時,它是一樣的。

PS.2我檢查了另一個繪圖函數,如hist()或plot(),但它是一樣的。只有一個情節產生和保存。

+1

請儘量使你的代碼重複的。例如,使用'iris'或'mtcars'做一些圖。沒有可重複的代碼,我們只能猜測發生了什麼。 – Andrie

+1

什麼是'丹妮'? – zx8754

+0

謝謝,它完成了。我添加了原始數據集並更正了「丹麥人」。 –

回答

0

這裏有效!

data1 <- read.csv2("~/Temp/data.csv", header=TRUE) 
data <- select(data1,v1,v2,v3,v4,v5,v6,v7) 
variables <- names(data) 
dane=1:length(variables) 
for (i in dane) { #i=2 
    png(paste0("Temp/plot_",names(data)[i],".png")) 
    sjp.frq(data[,i],title = names(data)[i]) 
    dev.off() 
} 

這裏3所有地塊的:

enter image description here enter image description here enter image description here

+0

現在我們正在談論! ;) 非常感謝。它也適用於我;)你能否給我寫幾句解釋。我糾正循環參數錯誤?尤其是命名/召回變量? –

+0

我認爲問題在於命名文件。在你的代碼中,'i'帶有孔列,然後'paste0'會給你一個字符串矢量,而不是一個字符串作爲文件名。 – Robert