13

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

4

1 回答 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 回答