【发布时间】:2017-11-09 09:36:18
【问题描述】:
我有一个如下所示的数据集:
spend <- structure(list(ID = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30), Dept = c("IT", "HR", "Marketing", "HR", "IT", "IT",
"Marketing", "IT", "Marketing", "Marketing", "IT", "IT", "HR",
"IT", "Marketing", "Marketing", "Marketing", "HR", "HR", "IT",
"IT", "Marketing", "IT", "Marketing", "Marketing", "IT", "HR",
"IT", "Marketing", "IT")), .Names = c("ID", "Dept"), class = c("tbl_df",
"tbl", "data.frame"), row.names = c(NA, -30L))
我有一个这样的列表:
rating <- c("Outstanding", "Exceeds Expectation", "Achieves Expectations", "Needs Improvement")
我想向数据集添加一个新列,在其中我根据分布随机分配来自rating 的值之一。我希望 5% 的值是 Outstanding,25% 是 Exceeds Expectation,67% 是 Achieves Expectations,3% 是 Needs Improvement,但在 Dept 下的每个组内。所以每个Dept 将被随机分配这些值,但具有特定的分布。
我无法使用sample 函数获得具体的分布和分组。
spend$Rating <- sample(rating, nrow(spend), replace = TRUE)
head(spend, 10)
# A tibble: 10 x 3
ID Dept Rating
<dbl> <chr> <chr>
1 1 IT Needs Improvement
2 2 HR Achieves Expectations
3 3 Marketing Exceeds Expectation
4 4 HR Needs Improvement
5 5 IT Needs Improvement
6 6 IT Rockstar
7 7 Marketing Achieves Expectations
8 8 IT Needs Improvement
9 9 Marketing Needs Improvement
10 10 Marketing Exceeds Expectation
这显然不能维持组内的分布。对此有何意见?
【问题讨论】:
-
sample有一个prob=参数,用于为变量中的每个值分配概率 - 在这种情况下为rating。阅读?sample -
那么,您是想从具有这些预期百分比的分布中提取,还是要强制使用那些确切的百分比?这是两种不同类型的采样。当您说“随机”时,不确定您的意思。当一个小组只有 1 或 2 人时会发生什么?
标签: r