如何将 "NA" 字符串更改为数据中所有列的实际 NA?

How do I change the "NA" string to actual NA for all columns in my Data?

我有一个包含 40 列和 9000 行的数据集,所有列都至少包含一个字符串“NA”。我想删除至少有一个“NA”的每一行,但我需要事先将其更改为实际的 NA 值。

我无法使用 na.strings="" 参数,因为我使用 opendatatoronto 包获取数据,而不是 read.csv

这段代码我也试过了,也没用。 for(i in names(data)) (set(data, which(data[[i]] == "NA"), i, NA))

dplyr::na_if() 应该可以解决问题:

df <- tibble( x = c('A', 'NA', 'C'), 
        y = c('D', 'E', 'NA'), 
        z = c('NA', 'NA', 'I' ))

na_if(df, 'NA')

怎么样

dat[dat == 'NA'] <- NA