2017-10-04 42 views
0

我讀一個CSV文件和計算列和追加結果到CSV數據CSV,但是我無法在這裏做 是代碼無法附加R中

ahg = list() 
for(i in 1:3){ 
    ahg[[i]] = " X+Y" #calculating columns 
    print(ahg[[i]]) 
    write.csv(ahg[[i]],"D:/wed.csv") 
} 

的Ø\ P print(ahg[[i]])

[1] 20 
[1] 13.51 
[1] 15.25 

但write.csv即Ø\ P wed.csv給人即15.25 任何建議,只是最後一個值是什麼林做錯了

謝謝。

+3

'write.csv(...,追加= TRUE)'。但是,你可能可以一次性寫完整個列表,你不應該循環它。 – C8H10N4O2

+0

不,沒有工作,而是發出警告「警告消息: 1:在write.csv(ahg [[i]],」D:/wed.csv「,append = TRUE): 嘗試設置'append'忽略「 – deepesh

+0

這是因爲在第一次迭代時,如果文件尚不存在,append將不會執行任何操作。請閱讀'?write.csv' – C8H10N4O2

回答

1

您不能在文件每行的末尾寫入額外的值。這不是如何write.csv()工作。

您需要在表格中

  • 讀(或其他結構)
  • 創建新的計算列(或其它值)
  • 重新寫入新的版本(使用默認append = FALSE )。

例如:

# create example CSV 
data(iris) 
write.csv(iris, 'test.csv', row.names=FALSE) 

# ------- this is what you need to do -------- 
df <- read.csv('test.csv') 

# create a new column 
df$Petal.Area <- df$Petal.Length * df$Petal.Width 

# over-write the file, but make sure you have a backup somewhere 
write.csv(df, 'test.csv', row.names=FALSE) 

# --- end of example -- you can delete it now --- 
file.remove('test.csv') 
+0

通過在循環外部使用這些行解決了問題「q = do.call(」rbind「,ahg ) dist = as.data.frame(q) write.csv(ahg,「D:/wed.csv」,append = F)「 – deepesh