我有一些其他复杂的脚本工作正常,除了给写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)
}
问题是,它只是将m的最终值写入csv,即使将append设置为TRUE
我的问题是,我是否需要将'm'作为数据框,矩阵或向量?
(考虑k和j是特别改变的文本字符串,我试图在从语料库中提取的CSV中使用)
以下是CSV文件的输出:
“”, “K”, “J” “1”,22,40
答案 0 :(得分:2)
您无法将append = TRUE
与write.csv
一起使用。这个想法是,应该很难弄清楚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")