如何在R中将数据框转换为csv格式的字符串?

3
我不想将csv写入文件,而是要获取一个csv格式的数据框的字符串表示形式(以便通过网络发送)。我正在使用R.NET。
3个回答

6
如果你不仅限于使用基本函数,可以尝试使用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"

@RichScriven 是的,这个答案似乎是最简单的; 尽管它需要一个额外的包,但应该鼓励使用现有的工具。 - Lay González

5

如果你想要一个csv格式的单一字符串,你可以从write.csv中获取输出。

让我们以mtcars为例:

paste(capture.output(write.csv(mtcars)), collapse = "\n")

使用 read.csv(text = ..., row.names = 1) 可以很好地将其读取回 R。你可以在 write.csv 中进行行名和其他属性的打印调整。


它可以工作,但是它会附加一列行的ID(例如1,2,...,n)。 - Lay González
1
@LayGonzález - 你可以在 write.csv 中调整这样的东西。对于行名称,设置 row.names = FALSE 就可以将它们去掉。 - Rich Scriven

2

或者:

write.csv(mtcars, textConnection("output", "w"), row.names=FALSE)

这将在全局环境中创建变量output并将其存储在字符向量中。

您可以执行以下操作:

paste0(output, collapse="\n")

为了将其变成一个大的字符字符串,类似于Rich的回答(但paste0()略快)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接