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

Cat*_*ine 2 csv r data-import

在上一条消息中 按列名将表转换为矩阵

我想对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)
Run Code Online (Sandbox Code Playgroud)

我应该使用以下data.csv文件

x <- read.csv(textConnection("data.csv"), header=TRUE)
Run Code Online (Sandbox Code Playgroud)

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

x <- xyz(textConnection(xyz), header=TRUE)
Run Code Online (Sandbox Code Playgroud)

是否必须使用textConnection来使用cast命令?

谢谢.

Ric*_*ton 17

几年后......

read.table和它的衍生物一样,read.csv现在有一个text参数,所以你不需要再textConnection直接使用s了.

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

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

Blah blah blah我被困在这里是我的数据plz help 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)
Run Code Online (Sandbox Code Playgroud)

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

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

当您使用自己的数据时,您不应该使用textConnection.
my_data <- read.csv("my data file.csv")应该足够了.

  • 我想你错过了一个注释`?read.csv`和一个链接到R数据导入/导出手册[http://cran.r-project.org/doc/manuals/R-data.html]某处在那里 :-) (3认同)