我正在尝试使用 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"))

它不能在=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 Rfactorlevelslabels指定

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

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

一个完整的解决方案

library(tidyverse)
df <-
tibble(
gender = c(0,1,0,1,0,0,1)
)
df %>% 
mutate(
gender = fct_recode(as.factor(gender), "Male" = "1","Female" = "0")
)

最新更新