我有一个大向量:
a<-1:1000
a<-sample(a,replace=F)
b<-sample(1:10,1)
我想从 a
中随机删除“b
”个条目。如何做到这一点?
最佳答案
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 的样本,然后使用负索引来子集。
关于从向量中删除 x 个随机条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21193168/