从向量中删除x个随机条目

时间:2014-01-17 18:27:08

标签: r

我有一个大矢量:

a<-1:1000
a<-sample(a,replace=F)
b<-sample(1:10,1)

我想随机删除&#39; b&#39;来自a的条目数。怎么办呢?

2 个答案:

答案 0 :(得分:2)

a的长度无关紧要,让我们举个简短的例子:

> a=1:20
> a=sample(a,replace=FALSE)
> a
 [1]  9 11 16 15 10 18  8  7  4  2 14  5 12 20  6  1 13 19  3 17
> b=sample(1:10,1)
> b
[1] 3
> a=a[-sample(1:length(a),b)]
> a
 [1]  9 11 16 15 10 18  7  4  2 14 12 20  6  1 13 19  3
> length(a)
[1] 17

这里的技巧是从1:length(a)获取长度为b的样本,然后使用负索引到子集。

答案 1 :(得分:1)

如果您想将b的{​​{1}}值设为a,那么:

NA

如果您要从a[sample(1:length(a), b)] <- NA 中删除b值,则:

a