【发布时间】:2019-04-04 12:48:21
【问题描述】:
我正在尝试通过从特定的离散分布中采样来生成虚拟数据 - 以因子的水平为条件(因此每个因子水平的分布不同),然后希望将每个随机结果插入到新的数据框列中对应于因子水平的行。如果您运行下面的代码,您将看到“data$last”为空。我不确定我做错了什么,我也尝试过没有循环,将每个级别的复制设置为 100 - 但是分布不正确。
#Create data frame with factor
set.seed(1)
ID<-(1:200)
gender<-sample(x = c("Male","Female"), 200, replace = T, prob = c(0.5, 0.5))
data<-data.frame(ID,gender)
#Generate random response based on discrete distribution conditional on gender
data$last <- for (i in 1:nrow(data)) {if(data$gender=="Male") {
sample(x = c("Today","Yesterday"), 1, replace = T, prob = c(0.8, 0.2))
} else {
sample(x = c("Today","Yesterday"), 1, replace = T, prob = c(0.3, 0.7))
}
}
【问题讨论】: