【发布时间】:2022-01-19 18:05:10
【问题描述】:
我有一个如下所示的数据框:
df <- data.frame(
id = c(1, 2, 3, 4, 5),
generation = as.factor(c(3, 2, 4, 3, 4)),
income = as.factor(c(4, 3, 3, 7, 3)),
fem = as.factor(c(0, 0, 1, 0, 1))
)
其中id 是数据集中个人的标识符,generation、income 和fem 是个人的分类特征。现在,我想根据个人特征将个人放入群组(“组”),其中个人特征值完全相同的个人应该得到相同的cohort_id。因此,我想要以下结果:
data.frame(
id = c(1, 2, 3, 4, 5),
generation = as.factor(c(3, 2, 4, 3, 4)),
income = as.factor(c(4, 3, 3, 7, 3)),
fem = as.factor(c(0, 0, 1, 0, 1)),
cohort_id = as.factor(c(1, 2, 3, 4, 3))
)
注意id = 3 和id = 5 得到相同的cohort_id,因为它们具有相同的特征。
我的问题是是否有一种快速的方法来创建cohort_ids,而无需一遍又一遍地使用多个case_when 或ifelse?如果您想建立许多群组,这可能会变得非常乏味。使用dplyr 的解决方案会很好,但不是必需的。
【问题讨论】: