如何从R中的向量中仅删除AN元素?例如,
x = c(1, 2, 0, 3, 1, 4, 2, 0)
我想随机删除其中一个零。然后
x = c(1, 2, 0, 3, 1, 4, 2)
或
x = c(1, 2, 3, 1, 4, 2, 0)
答案 0 :(得分:3)
要随机选择删除哪个零,您可以使用
x[-sample(which(x == 0), 1)]
显然,只有x
中至少有一个零,上述内容才有效。作为安全措施,您可以使用if()
声明。
if(length(w <- which(x == 0))) x[-sample(w, 1)] else x
# [1] 1 2 0 3 1 4 2
if(length(w <- which(x == 0))) x[-sample(w, 1)] else x
# [1] 1 2 3 1 4 2 0
搜索11
,其中没有,我们得到整个向量x
。
if(length(w <- which(x == 11))) x[-sample(w, 1)] else x
# [1] 1 2 0 3 1 4 2 0