2

プログラム全体で変化するいくつかの数値を含む変数があります。

例えば:

a<-c(1,2,4,6,5)

毎回一定数のサンプル(3)を取得したいと思います。

sample(a,3,replace=FALSE)

場合によっては、<3の場合、次のエラーが発生する可能性があります。

sample(a、3、replace = FALSE、prob = c(weights))のエラー:'replace = FALSE'の場合、母集団よりも大きいサンプルを取得できません

a <3の場合、可能な限り多くの時間を要するようにサンプリングする方法はありますか?たとえば、a = 2でサンプルサイズが3の場合、必要なのは2つだけです。

4

2 に答える 2

8
sample(a, min(length(a), 3), replace=FALSE)
于 2012-12-20T14:46:32.340 に答える
1

サンプリングする前に制御ステートメントを追加してif、長さを確認し、それに応じaて調整することができますmy.size

> my.size <- 3
> a <- 1:3
> if (length(a) <= 3)  { 
>     my.size <- length(a)
>     message(paste("Sampling size was reduced to ", my.size, ".", sep = ""))
> }
Sampling size was reduced to 2.
> my.size
[1] 2
> sample(a, size = my.size, replace=FALSE)
[1] 1 2
于 2012-12-20T14:43:30.150 に答える