首页 > 解决方案 > 我正在尝试使用 dplyr 重命名 R 中的因子,但我得到:错误:“cbc$Gender <- recode_factor(cbc$Gender, c(0,1) =”中的意外'='

问题描述

cbc$Gender <- recode_factor(cbc$Gender, c(0,1) = c("Female", "Male"))
cbc$Florence <- recode_factor(cbc$Florence, c(0,1) = c("No", "Yes"))

标签: rdplyr

解决方案


它不适用于 of 上的多个lhs元素=。采用

recode_factor(cbc$Gender,  `0`= "Female", `1` = "Male")
[1] Female Male   Female
Levels: Female Male

或者使用命名向量的拼接方法

 recode_factor(cbc$Gender, !!! setNames(c("Female", "Male"), c(0, 1)))
[1] Female Male   Female
Levels: Female Male

类似地,相同的选项可以在另一列中使用


但是,这甚至不需要任何recode,因为0,1可以转换为索引(R索引从 1 开始)

c("Female", "Male")[1 + cbc$Gender]
[1] "Female" "Male"   "Female"

或者可以使用base R factorwithlevelslabels指定

factor(cbc$Gender, levels = c(0, 1), labels = c("Female", "Male"))

数据

cbc <- data.frame(Gender = c(0, 1, 0))

推荐阅读