如何使用mutate将tibble中的NaN替换为NA?
替换tibble中的NaN为NA(使用mutate)
首先加载所需包并定义原始数据:
library(tibble) library(dplyr) tbl = tibble(x = c(NaN, NaN, 2, 3, 4, NA, NA, NaN, 5))
方法1:使用na_if()(最简洁)
dplyr的na_if()函数专门用于将指定值替换为NA,直接匹配NaN即可,不会改动原本的NA:
tbl_cleaned <- tbl %>% mutate(x = na_if(x, NaN))
方法2:使用replace()
通过is.nan()识别NaN的位置,再用replace()替换为NA:
tbl_cleaned <- tbl %>% mutate(x = replace(x, is.nan(x), NA))
方法3:使用ifelse()
通过条件判断逐个处理元素:
tbl_cleaned <- tbl %>% mutate(x = ifelse(is.nan(x), NA, x))
验证处理后的结果:
print(tbl_cleaned) #> # A tibble: 9 × 1 #> x #> <dbl> #> 1 NA #> 2 NA #> 3 2 #> 4 3 #> 5 4 #> 6 NA #> 7 NA #> 8 NA #> 9 5
内容的提问来源于stack exchange,提问作者SiH
相关产品推荐
相关产品推荐

