r разбить фрейм данных на список с помощью итерационного числового фильтра - PullRequest
0 голосов
/ 27 июня 2019

Я ищу решение 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 <- c(1:3) Здесь есть похожее, но не на 100% применимое решение: R: разбить информационный кадр на список по группам и итерации строк

1 Ответ

1 голос
/ 27 июня 2019

Одна из возможностей решить эту проблему - использовать lapply() с соответствующей функцией, подобной этой:

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