【发布时间】:2017-05-23 01:12:15
【问题描述】:
我不想将 csv 写入文件,而是要获取具有 csv 格式的数据帧的字符串表示形式(通过网络发送)。
如果有帮助,我正在使用 R.NET。
【问题讨论】:
我不想将 csv 写入文件,而是要获取具有 csv 格式的数据帧的字符串表示形式(通过网络发送)。
如果有帮助,我正在使用 R.NET。
【问题讨论】:
如果您想要一个 csv 格式的字符串,您可以从write.csv 捕获输出。
我们以mtcars为例:
paste(capture.output(write.csv(mtcars)), collapse = "\n")
这会通过read.csv(text = ..., row.names = 1) 读回 R 中。您可以在write.csv中调整行名和其他属性的打印。
【讨论】:
write.csv 中调整类似的内容。对于行名,row.names = FALSE 将它们关闭。
如果你不限于base功能,你可以试试readr::format_csv。
library(readr)
format_csv(iris[1:2, 1:3])
# [1] "Sepal.Length,Sepal.Width,Petal.Length\n5.1,3.5,1.4\n4.9,3.0,1.4\n"
【讨论】:
或者:
write.csv(mtcars, textConnection("output", "w"), row.names=FALSE)
这将在全局环境中创建变量output 并将其存储在字符向量中。
你可以的
paste0(output, collapse="\n")
使其成为一个大字符串,类似于 Rich 的答案(但 paste0() 稍微快一些)。
【讨论】: