2

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

我想对 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 吗?

谢谢你。

4

1 回答 1

19

几年后...

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 我被困在这里是我的数据请帮助 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 <- read.csv("my data file.csv")应该足够了。

于 2011-04-11T17:03:07.790 回答