感谢许多帮助,我得到了一个表达式,当满足某些条件时,该表达式可以将rbinom的值替换为向量。我的问题是,它总是替换相同的值,即,对于满足条件的每个实例都不会进行新的评估。我想我只需要将其包装在一个sapply语句中,但是语法不正确。 MWE:
arr1 <- c(8, 2, 5, 2, 3, 2, 2, 2, 8, 2, 4)
arr2 <- c(0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0)
arr1
arr1[Reduce("&", list(arr1 == 2, arr2 ==1))] <- rbinom(1,1,0.5) * 2
arr1
arr1
[1] 8 2 5 0 3 0 0 0 8 0 4
我希望它可以更改某些值,但不会更改其他值,因此请针对每个实例再次评估结果。这是purrr :: modify2的良好应用吗?谢谢。 J
可能是您打算使用:
inds <- arr1 == 2 & arr2 == 1
arr1[inds] <- rbinom(sum(inds), 1, 0.5) * 2