【问题标题】:R: convert variable to csv stringR:将变量转换为csv字符串
【发布时间】:2019-09-01 20:12:03
【问题描述】:

我想知道如何将 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”中。

谢谢

【问题讨论】:

  • 不清楚你想要什么。也许您可以向我们展示最终状态会是什么样子?
  • 你的意思是这样的吗?粘贴(x, collapse=",")
  • 补充 RJ 的问题:“发布到远程服务器”是什么意思?您要发布 csv 文件吗?还是什么?
  • 如前所述,我希望将 CSV 字符串表示形式,由 write.csv 打印到控制台,存储在变量 a 中。这是否更清楚?

标签: r


【解决方案1】:

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

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[-1,]    
## "\"V1\",\"V2\",\"V3\"" "1,3,5"                "2,4,6" 

【讨论】:

    【解决方案2】:

    事情可以这么简单......

     > 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"
     > 
    

    【讨论】:

    • 更简单:您不需要textConnectionValue(zz)。该值已经在变量foo1
    • 一些澄清:可能你想要类似的东西:"1,2,3,4,5,6,7,8,9,10"。为此,您必须将矩阵而不是向量传递给write.csv。此外,您希望 row.names=FALSEwrite.csv 中。不幸的是,您不能设置col.names=FALSE,并且必须为此使用write.table,或者使用foo1[2,] 来跳过列名向量。
    猜你喜欢
    • 1970-01-01
    • 2015-08-13
    • 1970-01-01
    • 2016-04-26
    • 2012-12-12
    • 2010-09-30
    相关资源
    最近更新 更多