【问题标题】:R: load R table or csv file with the textconnection commandR:使用 textconnection 命令加载 R 表或 csv 文件
【发布时间】:2011-08-03 05:18:10
【问题描述】:

在上一条消息中 Convert table into matrix by column names

我想对 csv 表或 R 中的表使用相同的方法。您能教我如何修改第一个命令行吗?

x <- read.table(textConnection(' models cores  time 4 1 0.000365 4 2 0.000259 4 3 0.000239 4 4 0.000220 8 1 0.000259 8 2 0.000249 8 3 0.000251 8 4 0.000258' ), header=TRUE)   

library(reshape) cast(x, models ~ cores)

我应该将以下内容用于 data.csv 文件

x <- read.csv(textConnection("data.csv"), header=TRUE)

我应该将以下内容用于名为 xyz 的 R 表

x <- xyz(textConnection(xyz), header=TRUE)

使用cast命令必须要有textConnection吗?

谢谢。

【问题讨论】:

  • 你不会碰巧和附近的另一个凯瑟琳是同一个人,她不接受问题并发布简单的问题,而无需费心阅读我们一直问她的手册吗?
  • 欢迎回来,凯瑟琳。哦,我们多么想念你。
  • 您确定xyz 是一张桌子吗?它更有可能是一个数据框。 class(xyz) 说什么?为什么您认为xyz 可以用作函数?如果xyz 已经在in R 中,你为什么要读入它?也许是你之前保存的东西?如果是后者,请参阅?load

标签: r csv data-import


【解决方案1】:

几年后……

read.table 和它的派生词如read.csv 现在有一个text 参数,所以你不需要再直接搞乱textConnections。

read.table(text = "
x y z
1 1.9 'a'
2 0.6 'b'
", header = TRUE)

textConnection 的主要用途是当人们在 SO 上提问时只是将他们的数据转储到屏幕上,而不是编写代码让回答者自己生成数据。例如,

等等等等我被困在这里是我的数据请帮助 omg
xyz
1 1.9 'a'
2 0.6 'b'
等等。

在这种情况下,您可以从屏幕复制文本并将其包装在对textConnection 的调用中,如下所示:

the_data <- read.table(tc <- textConnection("x y z
1 1.9 'a'
2 0.6 'b'"), header = TRUE); close(tc)

提问者提供代码会更好,如下所示:

the_data <- data.frame(x = 1:2, b = c(2.9, 0.6), c = letters[1:2])

当您使用自己的数据时,您永远不需要使用textConnection
my_data &lt;- read.csv("my data file.csv") 就足够了。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-20
  • 1970-01-01
  • 1970-01-01
  • 2019-12-04
  • 1970-01-01
  • 2021-10-30
相关资源
最近更新 更多