如何在R中写入csv文件,其中我的输入作为行写入文件?
这是一个非常简单的问题,我感到惊讶的是,网上没有这样的例子 我有一个向量:如何在R中写入csv文件,其中我的输入作为行写入文件?,r,csv,R,Csv,这是一个非常简单的问题,我感到惊讶的是,网上没有这样的例子 我有一个向量: vector <- c(1,1,1,1,1) 当我打开刚刚编写的文件时,csv将作为一列值写入。 就好像R决定在每个数字1后面加上新行一样 请原谅我的无知,但我一直认为用逗号分隔的值的意义在于表示从左到右的值序列,用逗号分隔。有点像我刚才做的;在某种意义上模仿书面语的语法。当csv显然应该是一行时,为什么R会如此死死地坚持列格式 撇开所有的语言哲学不谈,我试着使用转置函数。我已经翻遍了文件。请帮忙!谢谢 writ
vector <- c(1,1,1,1,1)
当我打开刚刚编写的文件时,csv将作为一列值写入。
就好像R决定在每个数字1后面加上新行一样
请原谅我的无知,但我一直认为用逗号分隔的值的意义在于表示从左到右的值序列,用逗号分隔。有点像我刚才做的;在某种意义上模仿书面语的语法。当csv显然应该是一行时,为什么R会如此死死地坚持列格式
撇开所有的语言哲学不谈,我试着使用转置函数。我已经翻遍了文件。请帮忙!谢谢 write.table(向量,“myfile.csv”,eol=“”,row.names=FALSE,col.names=FALSE)
您可以简单地将eol更改为您想要的任何值。在这里,我把它变成了一个空间 继续@Matt所说的,如果您想要csv,请尝试
eol=“,”
write.csv
是为矩阵设计的,R将单个向量视为具有单个列的矩阵。试着把它做成一个包含一行和多列的矩阵,它应该会像你期望的那样工作
write.csv(matrix(vector, nrow=1), file ="myfile.csv", row.names=FALSE)
不确定你用转置函数尝试了什么,但那也应该有效
write.csv(t(vector), file ="myfile.csv", row.names=FALSE)
我试过这个:
write.csv(rbind(vector), file ="myfile.csv", row.names=FALSE)
输出正在按列写入,但使用列名
这个似乎更好:
write.table(rbind(vector), file = "myfile.csv", row.names =FALSE, col.names = FALSE,sep = ",")
现在,输出打印为:
1 1 1 1 1
在.csv文件中,不带列名。还有一个:
write.table(as.list(vector), file ="myfile.csv", row.names=FALSE, col.names=FALSE, sep=",")
您可以使用
cat
将行附加到文件中。以下代码将向量作为行写入文件:
myVector <- c("a","b","c")
cat(myVector, file="myfile.csv", append = TRUE, sep = ",", eol = "\n")
输出如下:
"a","b","c"
如果函数被多次调用,它将向文件中添加行 以下是我所做的:
cat("myVar <- c(",file="myVars.r.txt", append=TRUE);
cat( myVar, file="myVars.r.txt", append=TRUE, sep=", ");
cat(")\n", file="myVars.r.txt", append=TRUE);
fwrite from data.table包也是另一个选项:
library(data.table)
vector <- c(1,1,1,1,1)
fwrite(data.frame(t(vector)),file="myfile.csv",sep=",",row.names = FALSE)
库(data.table)
矢量五个答案,但没有一个建议:使用cat
。为什么不提出第六个答案?
cat("myVar <- c(",file="myVars.r.txt", append=TRUE);
cat( myVar, file="myVars.r.txt", append=TRUE, sep=", ");
cat(")\n", file="myVars.r.txt", append=TRUE);
source("myVars.r.txt")
library(data.table)
vector <- c(1,1,1,1,1)
fwrite(data.frame(t(vector)),file="myfile.csv",sep=",",row.names = FALSE)