Список списка во фрейме данных - PullRequest
0 голосов
/ 01 февраля 2011

У меня есть данные, которые генерируются следующим образом:

> dat1 <- data.frame(V1 = rep(1, 5), V2 = sample(c(40:45), 5))
> dat2 <- data.frame(V1 = sample(c(0,1), 5, replace = TRUE), V2 = sample(c(40:45), 5, replace = TRUE))

Я хочу получить фрейм данных, содержащий список списка.

> hiv
$hiv.dat1
$hiv.dat1$V1[[1]]
[1] 1 1 1 1 1

$hiv.dat1$V2[[1]]
[1] 41 42 43 40 44


$hiv.dat2
$hiv.dat2$V1[[1]]
[1] 0 1 1 0 0

$hiv.dat2$V2[[1]]
[1] 42 43 40 44 43

Но почемуэтой командной строке не удалось создать это?

> hiv <- list(hiv.dat1 = as.list(dat1), hiv.dat2 = as.list(dat2))

Особенно это дает «$ hiv.dat1 $ V1» вместо «$ hiv.dat1 $ V1 [[1]]».

Как мы можем исправить это?Мне нужна эта конкретная структура данных, необходимая для определенного пакета (ROCR).

Ответы [ 2 ]

2 голосов
/ 01 февраля 2011

Кажется, вы хотите, чтобы каждый элемент фрейма данных стал своим собственным списком (длиной один); вместо этого ваш код превращает каждый фрейм данных в список, содержащий элементы фрейма данных. Вам необходимо применить функцию list к каждому элементу индивидуально с помощью lapply.

hiv <- list(hiv.dat1 = lapply(dat1, list), hiv.dat2 = lapply(dat2, list))
0 голосов
/ 01 февраля 2011

Только list тип может быть

  • вложенный (т.е. рекурсивный)

  • содержит объекты различного типа и length

Короче говоря, нет вложенности фреймов данных, но вы можете складывать разные фреймы данных в список.

(И, пожалуйста, не ставьте кросс-пост здесь и на-помощь.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...