如何从R中的大型集合中排除集合

时间:2019-02-05 10:42:35

标签: r

假设我有一组10元素。假设我的代码一次只能选择3个元素。然后,我希望选择另一个$ 3 $元素,而不选择已经选择的元素。

x <- c(4,3,5,6,-2,7,-4,10,22,-12)

然后,假设我的条件是选择小于3的{​​{1}}个元素。然后,

5

然后,我想选择另一个少于5个但第一次没有选择的new_x <- c(4, 3, -2) 元素。如果没有3元素,则第三个元素的值应为零。

因此

3

有什么帮助吗?

1 个答案:

答案 0 :(得分:2)

这里是使用split

的选项
f <- function(x, max = 5, n = 3) {
    x <- x[x < max]
    ret <- split(x, rep(1:(length(x) / n + 1), each = n)[1:length(x)])
    lapply(ret, function(w) replace(rep(0, n), 1:length(w), w))
}

f(x)
#$`1`
#[1]  4  3 -2
#
#$`2`
#[1]  -4 -12   0

说明:我们定义了一个自定义函数,该函数首先选择<5,然后将结果向量分割为长度为3的块,并将结果存储在list中,最后对这些list进行0填充元素是长度<3的向量。

样本数据

x <- c(4,3,5,6,-2,7,-4,10,22,-12)