将列表分成长度为x的列表

用户名

简单的问题,给出一个列表:

main_list <- list(1:3,
                  4:6,
                  7:9,
                  10:12,
                  13:15)
main_list
# [[1]]
# [1] 1 2 3

# [[2]]
# [1] 4 5 6

# [[3]]
# [1] 7 8 9

# [[4]]
# [1] 10 11 12

# [[5]]
# [1] 13 14 15

我想将列表拆分为多个列表,在其中将原始列表拆分成每个长度的列表x因此,如果我说了x = 2,我会得到3个长度为2、2和剩余1的列表:

target <- list(list(1:3,
               4:6),
               list(7:9,
               10:12),
               list(13:15))
target
# [[1]]
# [[1]][[1]]
# [1] 1 2 3

# [[1]][[2]]
# [1] 4 5 6


# [[2]]
# [[2]][[1]]
# [1] 7 8 9

# [[2]][[2]]
# [1] 10 11 12


# [[3]]
# [[3]][[1]]
# [1] 13 14 15

就像是:

my_split <- function(listtest, x) {
  split(listtest, c(1:x))
  }
target <- my_split(main_list, 2)

谢谢

阿克伦

这是一个选择 gl

split(main_list, as.integer(gl(length(main_list), 2, length(main_list))))

可以将其转换为自定义函数

f1 <- function(lstA, n) {
      l1 < length(lstA)
      split(lstA, as.integer(gl(l1, n, l1)))
  }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档