假设我有一组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
有什么帮助吗?
答案 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)