R:将变量转换为csv字符串

R:将变量转换为csv字符串,r,R,我想知道如何将R中的变量转换为csv字符串 > x = c(1:10) > a = write.csv(x) "","x" "1",1 "2",2 "3",3 "4",4 "5",5 "6",6 "7",7 "8",8 "9",9 "10",10 > a NULL > 我想把CSV字符串放在变量“a”中 谢谢事情可以这么简单 > zz <- textConnection("foo1", "w") > textConnectionValue(zz

我想知道如何将R中的变量转换为csv字符串

> x = c(1:10)
> a = write.csv(x)
"","x"
"1",1
"2",2
"3",3
"4",4
"5",5
"6",6
"7",7
"8",8
"9",9
"10",10
> a
NULL
> 
我想把CSV字符串放在变量“a”中


谢谢

事情可以这么简单

 > zz <- textConnection("foo1", "w") 
 > textConnectionValue(zz) 
 character(0) 
 > write.csv(x, zz) 
 > textConnectionValue(zz) 
 [1] "\"\",\"x\"" "\"1\",1" "\"2\",2" "\"3\",3" "\"4\",4" 
 [6] "\"5\",5" "\"6\",6" "\"7\",7" "\"8\",8" "\"9\",9" 
 [11] "\"10\",10"
 > 
>zz文本连接值(zz)
字符(0)
>write.csv(x,zz)
>文本连接值(zz)
[1] “\”、“\”x\“\”1\”、1“\”2\”、2“\”3\”、3“\”4\”、4“
[6] "\"5\",5" "\"6\",6" "\"7\",7" "\"8\",8" "\"9\",9" 
[11] "\"10\",10"
> 

事情可以这么简单

 > zz <- textConnection("foo1", "w") 
 > textConnectionValue(zz) 
 character(0) 
 > write.csv(x, zz) 
 > textConnectionValue(zz) 
 [1] "\"\",\"x\"" "\"1\",1" "\"2\",2" "\"3\",3" "\"4\",4" 
 [6] "\"5\",5" "\"6\",6" "\"7\",7" "\"8\",8" "\"9\",9" 
 [11] "\"10\",10"
 > 
>zz文本连接值(zz)
字符(0)
>write.csv(x,zz)
>文本连接值(zz)
[1] “\”、“\”x\“\”1\”、1“\”2\”、2“\”3\”、3“\”4\”、4“
[6] "\"5\",5" "\"6\",6" "\"7\",7" "\"8\",8" "\"9\",9" 
[11] "\"10\",10"
> 

这里有一个更简单的替代方案:

foo2 <- capture.output(write.csv(matrix(1:6,nrow=2), stdout(), row.names=F)) 
foo2
## "\"V1\",\"V2\",\"V3\"" "1,3,5"                "2,4,6" 

这里有一个更简单的替代方案:

foo2 <- capture.output(write.csv(matrix(1:6,nrow=2), stdout(), row.names=F)) 
foo2
## "\"V1\",\"V2\",\"V3\"" "1,3,5"                "2,4,6" 

你想要什么还不清楚。也许你能告诉我们最终状态会是什么样子?你是说这样的吗?粘贴(x,collapse=“,”)以添加到RJ的问题:您所说的“发布到远程服务器”是什么意思?是否要发布csv文件?或者什么?正如前面所说的,我希望将CSV字符串表示形式(通过write.CSV打印到console)存储在变量a中。这能让事情变得更清楚吗?它与……相反,它不清楚你想要什么。也许你能告诉我们最终状态会是什么样子?你是说这样的吗?粘贴(x,collapse=“,”)以添加到RJ的问题:您所说的“发布到远程服务器”是什么意思?是否要发布csv文件?或者什么?正如前面所说的,我希望将CSV字符串表示形式(通过write.CSV打印到console)存储在变量a中。这是否使它更清晰?它与……相反,甚至更简单:您不需要
textConnectionValue(zz)
。该值已在变量
foo1
中。有几点需要澄清:可能您需要类似于:
“1,2,3,4,5,6,7,8,9,10”
。为此,必须将矩阵而不是向量传递给
write.csv
。此外,您还需要
write.csv
中的
row.names=FALSE
。不幸的是,您无法设置
col.names=FALSE
,因此必须使用
write.table
,或者使用
foo1[2,]
跳过列名向量。更简单的是:您不需要
textConnectionValue(zz)
。该值已在变量
foo1
中。有几点需要澄清:可能您需要类似于:
“1,2,3,4,5,6,7,8,9,10”
。为此,必须将矩阵而不是向量传递给
write.csv
。此外,您还需要
write.csv
中的
row.names=FALSE
。不幸的是,您无法设置
col.names=FALSE
,因此必须使用
write.table
,或者使用
foo1[2,]
跳过列名向量。