13

Rに大きなデータセットがある場合、元のデータの分布を考慮してデータのランダムなサンプルを取得するにはどうすればよいですか。特に、データが偏っていて、1%のみがマイナークラスに属し、偏ったデータを取得したい場合はどうすればよいですか。データのサンプル?

4

1 に答える 1

22

この関数は、 sizesample(x, n, replace = FALSE, prob = NULL)のベクトルからサンプルを取得します。このサンプルは置換ありもなしでもかまいません。サンプルに対して各要素を選択する確率は、各要素で同じにするか、ユーザーから通知されたベクトルにすることができます。xn

50 ケースの各要素について同じ確率のサンプルを取得する場合は、次のようにします。

n <- 50
smpl <- df[sample(nrow(df), 50),]

ただし、要素に選択される確率を変えたい場合、たとえば、性別Mの要素の確率は0.25で、性別Fの要素の確率は0.75であるとします。

n <- 50
prb <- ifelse(sex=="M",0.25,0.75)
smpl <- df[sample(nrow(df), 50, prob = prb),]
于 2012-04-24T16:06:56.800 に答える