При подмножении data.frame внутри списка я получаю векторы вместо data.frames (см. пример ниже). Как этого избежать и получить data.frames?
l <- list(data.frame(a=c(1,2,3)), data.frame(b=c(4,5,6,5)), data.frame(c=c(3,4,5,6)))
names(l) <- c("A", "B", "C")
l
lapply(l, function(x) x[2:nrow(x), ])
выход
> l <- list(data.frame(a=c(1,2,3)), data.frame(b=c(4,5,6,5)), data.frame(c=c(3,4,5,6)))
> names(l) <- c("A", "B", "C")
> l
$A
a
1 1
2 2
3 3
$B
b
1 4
2 5
3 6
4 5
$C
c
1 3
2 4
3 5
4 6
> lapply(l, function(x) x[2:nrow(x), ])
$A
[1] 2 3
$B
[1] 5 6 5
$C
[1] 4 5 6
lapply
возвращает список, а не вектор, как вы утверждаете. - person Dirk Eddelbuettel   schedule 04.08.2011is.vector(list()) # TRUE
...но обычно мы имеем в виду атомарный вектор, когда говорим вектор.is.atomic(list()) # FALSE
- person Tommy   schedule 05.08.2011