R.用NA替换空值表示

时间:2016-07-18 17:15:04

标签: r csv na

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

以下是我的数据集示例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,将值替换为&#34; NA&#34;在excel中,它仍然无能为力。列不是因素。如果列包含&#34;的值:&#34;那列是&#34; chr&#34;否则就是&#34; int&#34;。

1 个答案:

答案 0 :(得分:2)

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

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

返回

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

如果没有这个,你最终会得到整数向量和因子变量的混合,这会使清理过程复杂化。