是否有与purrr相关的方法将列表拆分为多个长度较小的列表?
让我解释一下我想用代码做什么是否有与purrr相关的方法将列表拆分为多个长度较小的列表?,r,list,tidyverse,R,List,Tidyverse,让我解释一下我想用代码做什么 taget_input <- list(1,2,3,4,5,6,7,8,9) desired_output <- list(list(1,2,3), list(4,5,6), list(7,8,9)) # I wish there is a elegant function that passes this test testthat::expect_equal(DESIRED_FUNCTION(taget_input, group_length=3)
taget_input <- list(1,2,3,4,5,6,7,8,9)
desired_output <- list(list(1,2,3), list(4,5,6), list(7,8,9))
# I wish there is a elegant function that passes this test
testthat::expect_equal(DESIRED_FUNCTION(taget_input, group_length=3), desired_output)
taget\u输入基本上就是unname(split(taget\u输入,rep(1:3,3))
不是吗?天哪@最近的邮件你是对的。我现在觉得自己很愚蠢;0
#' @param target_list list to split on
#' @param group_length length for each split
group_list <- function(target_list, group_length) {
len_of_list <- length(target_list)
res <- list()
i <- 1
while(TRUE) {
start <- (1 + group_length*(i-1))
if(start > len_of_list) {
break
}
end <- min((group_length + group_length*(i-1)), len_of_list)
res[[i]] <- target_list[start:end]
i <- i + 1
}
res
}