如果我在 R 中有一个大型数据集,我如何考虑到原始数据的分布,随机抽取数据样本,特别是如果数据是倾斜的,只有 1% 属于小类,我想采取有偏见的数据样本?
最佳答案
sample(x, n, replace = FALSE, prob = NULL)
函数从向量中获取样本 x
尺寸n
.这个样本可以是与 或 无更换 ,选择每个元素加入样本的概率可以是每个元素相同 , 或 向量 由用户告知。
如果你想为每个元素抽取 50 个案例的相同概率样本,你所要做的就是
n <- 50
smpl <- df[sample(nrow(df), 50),]
但是,如果您想为元素提供不同的被选中概率,例如 的元素性别 是 男 有概率 0.25 , 而那些 性别 是 传真 有问题 0.75 ,你应该做
n <- 50
prb <- ifelse(sex=="M",0.25,0.75)
smpl <- df[sample(nrow(df), 50, prob = prb),]
关于r - 从 R 中的数据集中提取不成比例的样本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10240991/