如何通过列表的列表循环和子集
How to loop and subset through a list of list
我有一个列表,其中每个元素都是一个列表。我想为每个元素(训练集)和 return 创建一个新列表。
例如,sim = [list1, list2, list3]
我可以不用循环就这样做,但是你会如何优化它?
trainID =sample(1:1000,700)
train1 <- sim[[1]][trainID,] #first list
train2 <- sim[[2]][trainID,]
train3 <- sim[[3]][trainID,]
bigtrain <- list(train1, train2, train3)
这个有用吗?
bigtrain = list()
for(i in 1:3){
bigtrain[[i]] <- sim[[i]][trainID,]
}
使用lapply
:
bigtrain <- lapply(sim, function(x) x[trainID, ])
我们可以使用tidyverse
library(dplyr)
library(purrr)
bigtrain <- map(sim, ~ .x %>%
slice(trainID))
我有一个列表,其中每个元素都是一个列表。我想为每个元素(训练集)和 return 创建一个新列表。
例如,sim = [list1, list2, list3]
我可以不用循环就这样做,但是你会如何优化它?
trainID =sample(1:1000,700)
train1 <- sim[[1]][trainID,] #first list
train2 <- sim[[2]][trainID,]
train3 <- sim[[3]][trainID,]
bigtrain <- list(train1, train2, train3)
这个有用吗?
bigtrain = list()
for(i in 1:3){
bigtrain[[i]] <- sim[[i]][trainID,]
}
使用lapply
:
bigtrain <- lapply(sim, function(x) x[trainID, ])
我们可以使用tidyverse
library(dplyr)
library(purrr)
bigtrain <- map(sim, ~ .x %>%
slice(trainID))