将具有M个元素的向量列表拆分为2个N和M-N个元素的列表

时间:2019-09-26 06:51:47

标签: r

我创建了一个包含50个元素的向量列表aa。我需要将aa分为两个向量列表,分别称为bb和cc。 bb具有aa的前20个元素,而cc具有aa的后30个元素。我该怎么办?

创建原始矢量列表

aa <- list (sample (1:50))
aa
#[[1]]
# [1] 29 30 39 45 17 11 43 14 24 34  3  1 28  2 21 23  6 31  5 27 44  7  4 46 49 22 33 38 50 36 15 48  8 16 25 42 13 41 47
#[40] 37 26 32 35  9 18 10 20 40 19 12

对不起,我知道我的问题确实很基本。也许是因为问题太简单了,因此很难从互联网上找到解决方案。

2 个答案:

答案 0 :(得分:0)

由于我无法直接回答这个问题,所以添加了答案。我们可以首先使用[[子集列表,然后使用[在列表中选择单个元素。

bb <- aa[[1]][1:20]
cc <- aa[[1]][21:50]

我们还可以使用headtail分别选择前20个和后30个元素。

bb <- head(aa[[1]], 20)
cc <- tail(aa[[1]], 30)

答案 1 :(得分:0)

我们可以使用split创建list的{​​{1}}

vectors

并使用lst1 <- split(aa[[1]], rep(1:2, c(20, 30)))

提取向量
[[

它可以扩展到任何数量的拆分(即通用版本),我们只需要更改lst[[1]] lst1[[2]]