从R中的数据集中获取不成比例的样本

时间:2012-04-20 05:54:52

标签: r random sampling

如果我在R中有一个大型数据集,我如何考虑原始数据的分布随机抽取数据,特别是如果数据偏斜且只有1%属于次要类而且我想要拿一个有偏见的数据样本?

1 个答案:

答案 0 :(得分:20)

sample(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),]