我该如何在R中仅移除一个元素?例如,如果我有一个向量:
或者
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)
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