在 R 中以给定概率生成数据

paa*_*ika 1 r dataframe

我需要在R 中创建具有 50 名员工的 ID 和性别的数据框。为此,我将此代码与gl()函数一起使用。

gender<-gl(2, 25, label=c("Male", "Female"))
id<-1:50
df <- data.frame(id, gender)
Run Code Online (Sandbox Code Playgroud)

但这里的问题是前 25 行是“男性”,接下来的 25 行是“女性”。我想随机生成性别,每个性别有 50% 的机会。无论如何在R中做到这一点?

Ben*_*ker 5

你可能想要 sample()

gender <- sample(c("Male", "Female"), size=50, replace=TRUE)
Run Code Online (Sandbox Code Playgroud)

您还可以执行一些操作,例如以随机顺序创建一个包含 25 个男性和女性的向量

sample(rep(c("Male","Female"),each=25)
Run Code Online (Sandbox Code Playgroud)

或获得 50/50 以外的比例

sample(c("Male", "Female"), size=50, replace=TRUE, prob=c(0.75,0.25))
Run Code Online (Sandbox Code Playgroud)

  • +1,当然可以一步完成,无需在创建 data.frame 之前创建对象“id”和“gender”(例如“df &lt;- data.frame(id = 1:50, sex = sample( c("男", "女"), 50, 替换 = T, prob = c(0.5, 0.5)))`) (2认同)