我尝试根据未检测到字符串和列中的当前值来有条件地更改列中的值。
starwars %>%
mutate(
species = case_when(
!str_detect(name, "Luke Skywalker") |
!str_detect(name, "LUKE SKYWALKER") |
!str_detect(name, "Darth Vader") |
!str_detect(name, "DARTH VADER") &
species == "Human"
~ "Other",
.default = species
)
)
结果是所有物种的值都变成了“其他”。我本以为只有人类角色(不是卢克·天行者或达斯·维德)才是“物种的他者”。
1条答案
按热度按时间omqzjyyz1#
由于
mutate
命令中只有两个条件,因此甚至不需要case_when()
--只需使用if_else()
即可。这里有一个简单的方法来合并你的条件:
创建于2023-05-19带有reprex v2.0.2