R语言中修正Atp_singles_2022数据集变量错位问题求助
解决方法
你的核心需求是修正两类错误值:把误填在winner_seed里的"WC"移到winner_entry,同时将winner_seed设为缺失值。之前的代码逻辑完全偏离了目标,正确的处理方式如下:
修正代码
Atp_singles_2022 <- Atp_singles_2022 %>% mutate( # 当winner_seed是"WC"时,将winner_entry设为"WC",否则保留原值 winner_entry = if_else(winner_seed == "WC", "WC", winner_entry), # 当winner_seed是"WC"时,将其设为NA,否则保留原值 winner_seed = if_else(winner_seed == "WC", NA_character_, winner_seed) )
代码说明
- 使用
if_else针对异常行(winner_seed == "WC")做定向修正,不影响其他正常数据 - 先处理
winner_entry再处理winner_seed,避免覆盖需要用到的判断条件 NA_character_是字符型的缺失值,如果你数据集里winner_seed是数值型,可以改用NA_real_或NA_integer_
验证修正结果
可以用以下代码检查修正效果,确认异常行已被正确处理:
Atp_singles_2022 %>% filter(is.na(winner_seed) & winner_entry == "WC") %>% select(winner_seed, winner_entry, winner_name, tourney_name) %>% print(n=10)
内容的提问来源于stack exchange,提问作者Grant Weaver
相关产品推荐
相关产品推荐

