如何在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)