[英]R: Error using recode function to replace blanks with NA in character variable
我正在重新编码选择的字符变量,但在尝试用NA
替换空格时不断收到错误消息:
df <- df %>% mutate_at(vars(c("gender_1", "gender_2", "a_gender")),
funs(recode(., "M" = "Male",
"F" = "Female",
"" = NA_character_)))
Error: attempt to use zero-length variable name
谁能发现我的错误? 我敢肯定这是非常明显的...
编辑:生成类似于我正在处理的数据集的代码:
gender_1 <- as.character(c('F', '', 'F', 'M'))
gender_2 <- as.character(c('', 'M', 'F', 'M'))
a_gender <- as.character(c('', '', 'F', ''))
df <- data.frame(gender_1, gender_2, a_gender)
gender_1 <- as.character(c('F', '', 'F', 'M'))
gender_2 <- as.character(c('', 'M', 'F', 'M'))
a_gender <- as.character(c('', '', 'F', ''))
df <- data.frame(gender_1, gender_2, a_gender)
library(tidyverse)
df %>%
mutate(across(where(is.character), ~na_if(.x, "")))
#> gender_1 gender_2 a_gender
#> 1 F <NA> <NA>
#> 2 <NA> M <NA>
#> 3 F F F
#> 4 M M <NA>
由代表 package (v2.0.1) 于 2021 年 11 月 24 日创建
或者
df %>%
mutate(across(
.cols = contains("gender"),
.fns = ~ case_when(.x == "M" ~ "Male",
.x == "F" ~ "Female",
.x == "" ~ NA_character_)
))
#> gender_1 gender_2 a_gender
#> 1 Female <NA> <NA>
#> 2 <NA> Male <NA>
#> 3 Female Female Female
#> 4 Male Male <NA>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.