我正在编写一个 R 包,其中 R 代码与 Java 应用程序对话。 Java 应用程序输出 CSV 格式的字符串,我希望 R 代码能够直接读取该字符串并将其转换为 data.frame。
最佳答案
编辑 7 年前的答案:到目前为止,由于添加了 text=
参数,这简单得多 read.csv()
等:
R> data <- read.csv(text="flim,flam
+ 1.2,2.2
+ 77.1,3.14")
R> data
flim flam
1 1.2 2.20
2 77.1 3.14
R>
<小时/>
是的,请查看 textConnection()
的帮助 - R 中非常强大的概念是基本上所有读者(例如 read.table( )
及其变体)访问这些连接对象,它可能是一个文件,或远程URL,或来自另一个应用程序的管道,或...一些文本,如您的情况.
同样的技巧也用于所谓的此处文档:
> lines <- "
+ flim,flam
+ 1.2,2.2
+ 77.1,3.14
+ "
> con <- textConnection(lines)
> data <- read.csv(con)
> close(con)
> data
flim flam
1 1.2 2.20
2 77.1 3.14
>
请注意,这是一种构建某些内容的简单方法,但由于需要重复解析所有数据,因此成本也昂贵。还有其他方法可以从 Java 转到 R,但这应该可以让您快速上手。其次是效率...
关于r - 有没有办法使用 read.csv 从字符串值而不是 R 中的文件中读取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3936285/