R:使用textconnection命令加载R表或csv文件

时间:2011-04-11 16:22:32

标签: r csv data-import

在上一条消息中 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)

是否必须使用textConnection来使用强制转换命令?

谢谢。

1 个答案:

答案 0 :(得分:17)

几年后......

read.table及其衍生产品read.csv现在有一个text参数,因此您无需再直接使用textConnection s。

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

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

  Blah blah blah我被困在这里是我的数据plz help omg
  x y z
  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 <- read.csv("my data file.csv")就足够了。