我有一个名为region
的变量,其中包含世界的区域,变量Country
包括国家名称。
有时Country
具有NA
值,但仍包括该区域。我只想将法国的区域从“Europe”更改为“France”,而不更改region
变量中的任何其他内容。但是,当我运行以下代码时,对于Country
中具有NA
的所有观测,region
都更改为NA
。
data <- data|>
mutate(region = case_when(
data$`Country` == "France" ~ "France",
data$`Country` != "France" ~ region)
)
我该如何解决这个问题?
5条答案
按热度按时间oogrdqng1#
在您的代码中,只有当
Country != "France"
为TRUE
时才会返回region
,而当Country
为NA
时则不会返回region
。您可以通过在条件中包含对NA
s的测试来解决此问题:或者使用
ifelse()
:或者,在dplyr v1.1.0或更高版本中,可以使用
case_when()
的.default
参数:以下任一方法的结果:
cgyqldqp2#
我肯定有更干净的解决办法,但你可以试试:
pgky5nke3#
只需使用
ifelse
并检查Country
中的NA值和不等于"France"
。wtzytmuj4#
cbwuti445#
尝试使用
ifelse()
而不是case_when()
: