Rに大きなデータセットがある場合、元のデータの分布を考慮してデータのランダムなサンプルを取得するにはどうすればよいですか。特に、データが偏っていて、1%のみがマイナークラスに属し、偏ったデータを取得したい場合はどうすればよいですか。データのサンプル?
質問する
39844 次
1 に答える
22
この関数は、 sizesample(x, n, replace = FALSE, prob = NULL)
のベクトルからサンプルを取得します。このサンプルは置換ありでもなしでもかまいません。サンプルに対して各要素を選択する確率は、各要素で同じにするか、ユーザーから通知されたベクトルにすることができます。x
n
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 に答える