簡體   English   中英

在R循環中將兩列寫入CSV文件(追加)

[英]Write CSV file with two columns in R loop (append)

我有一些其他復雜的腳本,可以正常工作,除了給csv文件寫入帶來麻煩。 讓我們在此舉個例子,我希望k和j出現在20行中,k在第一列中,而j在第二列中。

for (i in 1:20)
{
    k = i+2;
    j = i+20;
    m= data.frame(k,j)
    write.csv(m,file="Dummy.csv",append=TRUE)
    print(m)
}

問題是, 即使將append設置為TRUE它也只將m的最終值寫入到csv中

我的問題是, 我是否需要將“ m”作為數據幀,矩陣或向量?

(考慮到k和j是特殊的更改文本字符串,我正嘗試從語料庫中提取CSV來替換它)

以下是CSV文件的輸出:

“”,“ k”,“ j”“ 1”,22,40

您不能對write.csv使用append = TRUE 想法是,應該很難弄亂write.csv並執行您不想執行的操作。

您可以將其與write.table一起使用,以提供以下解決方案:

for (i in 1:20)
{
  k = i+2;
  j = i+20;
  m = data.frame(k,j)
  write.table(m, file="Dummy.csv",
              append=TRUE,
              col.names = FALSE,
              sep = ',')
  print(m)
}

注意,您有遺漏的列名,否則將在循環的每次迭代中添加列名。

但是,一個更好的主意是分部分構建數據幀,最后將其寫入csv。

m <- data.frame(NULL)
for (i in 1:20)
{
  k <- i+2;
  j <- i+20;
  m <- rbind(m, data.frame(k,j))
}

write.csv(m, file="Dummy2.csv")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM