【问题标题】:r split dataframe into list by iterative numeric filterr 通过迭代数字过滤器将数据帧拆分为列表
【发布时间】:2026-01-05 09:50:02
【问题描述】:

我正在为以下输出寻找一个 lapply/split 解决方案(或任何有效的解决方案):

library(dplyr)
set.seed(34)
startingframe <-  data.frame(
  time=rep(1:5,each=1,times=1),
  othercolumn=rnorm(1:5)
)

startingframeout1 <- startingframe %>% dplyr::filter(time >= 1)
startingframeout2 <- startingframe %>% dplyr::filter(time >= 2)
startingframeout3 <- startingframe %>% dplyr::filter(time >= 3)
startingframelist <- list(startingframeout1, startingframeout2, startingframeout3)
startingframelist


[[1]]
  time  othercolumn
1    1  0.670620044
2    2 -0.849014621
3    3  1.066804504
4    4 -0.007460534
5    5 -0.402880091

[[2]]
  time  othercolumn
1    2 -0.849014621
2    3  1.066804504
3    4 -0.007460534
4    5 -0.402880091

[[3]]
  time  othercolumn
1    3  1.066804504
2    4 -0.007460534
3    5 -0.402880091

换句话说,我希望将startingframe 转换为满足数字过滤器的数据框列表。理想情况下,我会将过滤器范围输入到函数中,例如。 timefilter &lt;- c(1:3)这里有一个类似但不是100%适用的解决方案:R: Split dataframe into list by group and row iteration

【问题讨论】:

    标签: r split lapply


    【解决方案1】:

    解决这个问题的一种可能性是使用lapply() 和这样的适当函数:

    lapply(1:5, function(x) {startingframe %>% filter(time >= x)})
    

    【讨论】:

      最近更新 更多