R. 用 NA 替换空值表示

R. replacing null value representation with NA

我已经尝试了我在 Whosebug 上找到的关于这个主题的所有方法,但没有任何效果。

这是我的名为 TEST 的数据集的示例:

x2000 x2001 x2002

100   1200   230
200   2002   280
:     1980   :  

":"表示缺失值。问题是我不能用 R 接受的 NA 替换这个冒号。

我尝试过的:

sum(TEST %in c(":"))
returns: [1] 0

TEST[TEST==":"] <-NA #does nothing

我尝试将文件另存为 .csv,将 excel 中的值替换为 "NA",但它仍然没有任何反应。这些列不是因素。如果该列包含“:”的值,则该列为 "chr",否则为 "int"。

可能最简单的方法是在使用 read. 函数族之一读取数据时设置 na.strings 方法。以下是示例数据的 read.table 示例:

df <- read.table(header=T, text="x2000 x2001 x2002
100   1200   230
200   2002   280
:     1980   :  ", na.strings=":")

这个returns

df
  x2000 x2001 x2002
1   100  1200   230
2   200  2002   280
3    NA  1980    NA

也许更重要的是,结果 data.frame 的结构是整数向量:

str(df)
'data.frame':   3 obs. of  3 variables:
 $ x2000: int  100 200 NA
 $ x2001: int  1200 2002 1980
 $ x2002: int  230 280 NA

否则,您最终会得到整数向量和因子变量的混合体,这会使清理过程变得有点复杂。