R 从向量中删除x个随机项

R 从向量中删除x个随机项,r,R,我有一个大向量: a<-1:1000 a<-sample(a,replace=F) b<-sample(1:10,1) aa的长度是不相关的,让我们举一个简短的例子: > 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<-1:1000
a<-sample(a,replace=F)
b<-sample(1:10,1)

aa的长度是不相关的,让我们举一个简短的例子:

> 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的样本,然后使用负索引来子集。

如果要将
a
中的
b
值设置为
NA
,则:

a[sample(1:length(a), b)] <- NA
a <- a[-sample(1:length(a), b)]

adel note
replace=FALSE
是默认值,但有时为了清楚起见,当您记不起默认值是什么时,可以方便地保留。删除
a
的第一个元素,或者如果
a
被置乱,则
a
的随机元素相同。