如何解决使用mutate函数进行变量替换
我正在尝试使用dplyr包中的mutate函数创建一个新变量,该变量包含将Var1变量中的“ NA”替换为0的位置,并使其他观察值保持通常的状态。但是,我没有得到想要的东西。
下面是数据和代码:
Dados1 <- data.frame(Var1 = c(rep("NA",4),"H","Q",rep("NA",4)))
Dados1
library(dplyr)
Dados1 <- Dados1 %>%
dplyr::mutate(NewCode = ifelse(Var1 == "NA","0"))
Dados1
Erro: Problem with `mutate()` input `NewCode`.
x argumento "no" ausente,sem padrão
i Input `NewCode` is `ifelse(Var1 == "NA","0")`.
Run `rlang::last_error()` to see where the error occurred.
> Dados1
解决方法
尝试一下:
library(dplyr)
#Code
Dados1 <- Dados1 %>% dplyr::mutate(NewCode = ifelse(Var1=='NA',"0",Var1))
输出:
Dados1
Var1 NewCode
1 NA 0
2 NA 0
3 NA 0
4 NA 0
5 H H
6 Q Q
7 NA 0
8 NA 0
9 NA 0
10 NA 0
也可以使用真实的NA
进行引导,您可以尝试以下方法:
#Data 2
Dados1 <- data.frame(Var1 = c(rep(NA,4),"H","Q",rep(NA,4)),stringsAsFactors = F)
#Code 2
Dados1 <- Dados1 %>%
dplyr::mutate(NewCode = ifelse(is.na(Var1),Var1))
输出:
Dados1
Var1 NewCode
1 <NA> 0
2 <NA> 0
3 <NA> 0
4 <NA> 0
5 H H
6 Q Q
7 <NA> 0
8 <NA> 0
9 <NA> 0
10 <NA> 0
,
您的语法错误:使用ifelse
(或dplyr
版本if_else
)时
您必须提供三个输入。
- 逻辑陈述
- 在满足语句的情况下输出
- 该语句未满足的输出。
您的情况下缺少3号。
Dados1 <- Dados1 %>%
dplyr::mutate(NewCode = ifelse(Var1 == "NA",VaR1))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。