2014-01-17 47 views
1

我有一个大的矢量:移去X随机条目从矢量

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

我想随机a除去“b”条目数。如何才能做到这一点?的

+1

'阿德尔< - 一[ -sample(seq_along(a),size = b,replace = FALSE))]' –

+0

note'replace = FALSE'是默认设置,但有时候为了清晰起见,您不能记住默认设置。 – Spacedman

+1

如果'a'被加扰,去掉'a'的第一个元素或'a'的随机元素是一样的。 – Rcoster

回答

1

长度是不相关的,可以让使更短的例如:

> 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 

这里关键是要采取长度为b的样品从1:长度(a),然后使用负索引到子集。

1

如果你想从a设置b值是NA,则:

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

如果你想从a删除b值,则:

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