使用mutate()函数时持续出现unexpected '='错误求助
解决dplyr中recode()函数的语法错误
你遇到的错误是因为dplyr的recode()函数中,数值型的匹配键不能直接写1 = "Male"——在R的函数参数规则里,纯数字不能作为参数名,所以R会识别不了这个语法,抛出"unexpected '='"的错误。
给你两种可行的解决方法:
方法1:给数值键加反引号转义
把数值用反引号括起来,让R把它识别为合法的参数名:
table %>% mutate(SEX_R = recode(SEX, `1` = "Male", `2` = "Female"))
方法2:用case_when()替代(更适合新手)
case_when()的语法逻辑更直观,不需要纠结参数名的问题,还能方便处理其他未匹配的情况:
table %>% mutate(SEX_R = case_when( SEX == 1 ~ "Male", SEX == 2 ~ "Female", TRUE ~ NA_character_ # 可选,给未匹配的数值赋值NA,可根据需求修改 ))
注意:如果你的SEX列是字符型(比如值是"1"而不是1),直接用引号包裹键即可("1" = "Male"),不需要反引号。
内容的提问来源于stack exchange,提问作者Renthu
相关产品推荐
相关产品推荐

