如果我在 R 中有一个大型数据集,我如何在考虑原始数据分布的情况下随机抽取数据样本,特别是如果数据是偏斜的并且只有 1% 属于次要类别并且我想采取有偏见的数据样本?
问问题
39844 次
1 回答
22
该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),]
于 2012-04-24T16:06:56.800 回答