【发布时间】:2019-08-31 01:25:59
【问题描述】:
我有一个大家庭的个人数据集,因此有一个变量可以识别受访者与受访户主(父母、孩子、兄弟等)的关系。
我想创建一个变量来标识他们的“世代组”。 我的小组是:
gen0 <- c("grandparent", "grandparent_ofwife")
gen1 <- c("parent", "parent_inlaw", "parent_ofcohab")
gen2 <- c("head", "wife_legal", "wife_cohabit", "husband_legal", "y1_cohab")
gen3 <- c("child", "child_step", "child_ofwife", "child_inlaw", "child_foster", "child_1y_cohab")
我已经尝试使用 case_when 来使用以下代码创建一个新的“生成”变量:
dat2<- dat %>% mutate('2017_generation' = case_when('2017_relation_head' %in% gen0 ~ "gen0",
'2017_relation_head' %in% gen1 ~ "gen1",
'2017_relation_head' %in% gen2 ~ "gen2",
'2017_relation_head' %in% gen3 ~ "gen3"))
但新变量“2017_generation”仍然完全填充了 NA 值。知道我做错了什么吗? (下面的示例数据)
id 2017_relation_head
1 wife_legal
2 head
3 wife_legal
4 head
5 wife_legal
6 head
7 wife_legal
8 child
9 child
10 NA
11 child
12 child
13 child
14 child
15 child
16 head
17 parent
18 NA
19 grandchild
20 child_step
【问题讨论】:
-
使用反引号代替单引号 (
') 来引用列名。 (`)。 -
啊,是的,就是这样,我犯了一个愚蠢的错误!谢谢!
标签: r dplyr data-manipulation case-when