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

从R中的数据集中获取不成比例的样本,r,random,sampling,R,Random,Sampling,如果我在R中有一个大的数据集,我如何在考虑原始数据分布的情况下对数据进行随机抽样,特别是如果数据是倾斜的,只有1%属于次要类别,并且我希望对数据进行有偏差的抽样?样本(x,n,replace=FALSE,prob=NULL)函数从大小为n的向量x中获取样本。该样本可以是带或不带替换,并且选择样本中每个元素的概率可以是每个元素相同,或者用户通知的向量 如果你想对50个案例中的每个元素抽取相同概率的样本,你所要做的就是 n <- 50 smpl <- df[sample(nrow(df)

如果我在R中有一个大的数据集,我如何在考虑原始数据分布的情况下对数据进行随机抽样,特别是如果数据是倾斜的,只有1%属于次要类别,并且我希望对数据进行有偏差的抽样?

样本(x,n,replace=FALSE,prob=NULL)函数从大小为
n
的向量
x
中获取样本。该样本可以是不带替换,并且选择样本中每个元素的概率可以是每个元素相同,或者用户通知的向量

如果你想对50个案例中的每个元素抽取相同概率的样本,你所要做的就是

n <- 50
smpl <- df[sample(nrow(df), 50),]

n导入数据,找到“级别”的权重,然后让
sample
处理其余部分。如果你能缩小你的问题范围(至少使用样本数据-)会有帮助。另外,除非我在这里遗漏了一些明显的东西,否则我在ifelse中得到了
错误(sex==“m”,0.25,0.75):在试图运行上一个示例时未找到对象“sex”
。我只是让它与
prob=ifelse(df$sex==“m”,0.25,0.75)一起工作
示例中的
函数。
n <- 50
prb <- ifelse(sex=="M",0.25,0.75)
smpl <- df[sample(nrow(df), 50, prob = prb),]