R: загрузить таблицу R или CSV-файл с помощью команды textconnection - PullRequest
2 голосов
/ 11 апреля 2011

В предыдущем сообщении Преобразование таблицы в матрицу по именам столбцов

Я хочу использовать тот же подход для таблицы 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)

Должен ли я использовать следующее для таблицы R с именем xyz

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

Обязательно ли иметь textConnection для использования команды приведения?

Спасибо.

1 Ответ

17 голосов
/ 11 апреля 2011

Несколько лет спустя ...

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, просто выводят свои данные на экран, а не пишут код, чтобы позволить авторам генерировать его самостоятельно. Например,

Бла-бла-бла, я застрял здесь, мои данные, пожалуйста, помогите 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") должно хватить.

...