按其数据框的值拆分列表

时间:2018-09-26 17:32:02

标签: r list

假设我们拥有此数据(我们只有列表“ Acc” ):

rdate <- function(x,min = paste0(format(Sys.Date(), '%Y'), '-01-01'),
                  max = paste0(format(Sys.Date(), '%Y'), '-12-31'),
                  sort = TRUE)
  {dates <- sample(seq(as.Date(min), as.Date(max), by = "day"), x, replace = TRUE)
  if (sort == TRUE) {sort(dates)}
                  else {dates}}

X <- data.frame(A = rnorm(10000, sd = 0.8),
                B = sample( LETTERS[1:24], 10000, replace=TRUE),
                C = rdate(10000))
Acc <- split(X,X$C,drop = TRUE)

因此,我们有一个列表,每个日期除以一个数据框。我们需要有两个列表,一个列表包含06/01之前的数据帧(日期在这里并不重要),另一个列表包含06/01到12/31的数据帧。 >

有没有一种简单的方法可以用R做到这一点?

1 个答案:

答案 0 :(得分:1)

定义一个切入点(x)并将列表子集(Acc

x <- as.Date("2018-06-01")
# data frames before 06/01
Acc1 <- Acc[names(Acc) < x] # Acc1 has 151 data frames
# data frames from 06/01 to 12/31
Acc2 <- Acc[names(Acc) >= x] # Acc2 has 214 data frames