替换由"."编码的缺失值.在R数据帧中

pan*_*tti 2 replace r dataframe

我有一个数据框,缺少值由"."编码,我想将值重新编码为NA:

df <- data.frame("h"=c(1,1,"."))

我尝试以下方法:

df$h[df$h == "."] <- NA

但是NA看起来像是<NA>,我无法执行命令mean(df$h,rm.na=TRUE)

有谁知道问题是什么?当我将数字重新编码为NA时,没有问题

谢谢!

42-*_*42- 6

使用该is.na功能.不需要转换为因子,尽管你有字符值的事实确实会导致你想要数字的强制.

> df <- data.frame("h"=c(1,1,"."))
> is.na(df) <- df=="."
> df
     h
1    1
2    1
3 <NA>
Run Code Online (Sandbox Code Playgroud)

我不确定为什么@TylerRinker删除了关于使用'na.strings'的回复,因为我认为这是正确答案.

评论:一年后看到这一点,我意识到a)OP误解了当它们处于因子或特征向量时如何显示缺失值,以及b)主要问题不是重新编码为R缺失值时的错误,OP的代码已经正确地完成了,但更确切地说是@joran发现的拼写错误.