【发布时间】:2014-03-23 16:18:01
【问题描述】:
这是我假设的数据框;
location<- as.factor(rep(c("town1","town2","town3","town4","town5"),100))
visited<- as.factor(rbinom(500,1,.4)) #'Yes or No' variable
variable<- rnorm(500,10,2)
id<- 1:500
DF<- data.frame(id,location,visited,variable)
我想创建一个新的数据框,其中每个位置的 0 和 1 的数量相等。我想通过对每个位置的 0 进行随机抽样来实现这一点(因为 0 比 1 多)。
我发现这个解决方案可以按组抽样;
library(plyr)
ddply(DF[DF$visited=="0",],.(location),function(x) x[sample(nrow(x),size=5),])
我为 size 参数输入了“5”,以便代码运行,但我不知道如何将“size”参数设置为等于 DF$visited==1 的观察次数。
我怀疑答案可能在我审查过的其他问题中,但它们对我来说有点太高级了。
感谢您的帮助。
【问题讨论】: