Я пытаюсь охватить семью apply
больше, но все еще возникают проблемы.Я в основном понимаю простые случаи с lapply
(как показано ниже), но у меня возникают проблемы с более сложными apply
функциями.
У меня есть функция цикла for
, которая перебирает вложенный список и добавляет новый список подмножеств.Как я мог написать это, используя семейство функций apply
?
mylist <- list(mtcars=mtcars, iris=iris)
mylist <- lapply(mylist,
function(sub) list(data=sub))
for (i in head(seq_along(mylist))){
mylist[[i]]$new <- mylist[[i]]$data[,c(1,4,5)]
}
, что дает:
> mylist$mtcars$new
mpg hp drat
Mazda RX4 21.0 110 3.90
Mazda RX4 Wag 21.0 110 3.90
Datsun 710 22.8 93 3.85
Hornet 4 Drive 21.4 110 3.08
> mylist$iris$new
Sepal.Length Petal.Width Species
1 5.1 0.2 setosa
2 4.9 0.2 setosa
3 4.7 0.2 setosa
4 4.6 0.2 setosa