【问题标题】:How to loop and subset through a list of list如何通过列表列表循环和子集
【发布时间】:2021-02-12 23:12:12
【问题描述】:

我有一个列表,其中每个元素都是一个列表。我想为每个元素(训练集)创建一个样本并返回一个新列表。

例如,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)

【问题讨论】:

    标签: r loops simulation


    【解决方案1】:

    这行得通吗?

    bigtrain = list()
    for(i in 1:3){
      bigtrain[[i]] <- sim[[i]][trainID,]
    }
    

    【讨论】:

      【解决方案2】:

      使用lapply

      bigtrain <- lapply(sim, function(x) x[trainID, ])
      

      【讨论】:

        【解决方案3】:

        我们可以使用tidyverse

        library(dplyr)
        library(purrr)
        bigtrain <- map(sim, ~ .x %>% 
                                  slice(trainID))
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-07-08
          • 2017-02-19
          • 1970-01-01
          • 1970-01-01
          • 2017-02-18
          • 1970-01-01
          相关资源
          最近更新 更多