【发布时间】:2020-02-18 19:14:40
【问题描述】:
我正在尝试制作一个模拟员工数据集来练习一些分析。我已经有一个模拟数据集,其中包含虚假的员工姓名、工作 ID、性别和种族。我还想添加其他变量,例如主管身份和薪酬等级。但是,例如,在实际数据集中,男性员工比女性员工更有可能成为主管,所以我不想让 R 让 30% 的案例成为主管和 70% 的非主管,我希望 R 让 20% 的女性员工案件和 30% 的男性案件主管。
我已经尝试使用 case_when() 或 group_by() 以及 sample() 函数,但我无法让它工作。
一个理想的解决方案可以进一步扩展,而不仅仅是二分变量,因为薪酬等级和种族有 5 个级别。此外,如果我可以扩展解决方案以考虑多个变量(例如,性别和种族),那将是最好的。
以下是 5 名男性和 5 名女性病例的一些虚假数据。对于这个案例,假设我想要 40% 的男性案例主管 (2/5),而只需要 20% 的女性案例主管 (1/5)。 p>
library(tidyverse)
test <- tibble(emp_num = 1:10,
ethnicity = c("White", "White", "Hispanic", "Black", "Asian", "White", "White", "Hispanic", "Black", "Asian"),
gender = c("Male", "Female", "Male", "Female", "Male", "Female", "Male", "Female", "Male", "Female"))
下面是正确比例的答案(当然,在这种情况下,主管是哪个员工编号并不重要,只要出现男性和女性的不同比例即可)。
sample_answer <- tibble(emp_num = 1:10,
ethnicity = c("White", "White", "Hispanic", "Black", "Asian", "White", "White", "Hispanic", "Black", "Asian"),
gender = c("Male", "Female", "Male", "Female", "Male", "Female", "Male", "Female", "Male", "Female"),
sup_status = c("Supervisor", "Supervisor", "Supervisor", "Non-Super", "Non-Super", "Non-Super", "Non-Super", "Non-Super", "Non-Super", "Non-Super"))
【问题讨论】:
标签: r random dplyr grouping sample