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

标签 r replace dataframe

我有一个缺失值由“.”编码的数据框,我想将这些值重新编码为 NA:

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

我尝试以下方法:

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

但是 NA显示为 <NA> , 我不能执行像 mean(df$h,rm.na=TRUE) 这样的命令

有谁知道问题出在哪里?当我将数字重新编码为 NA 时没有问题

谢谢!

最佳答案

使用 is.na 函数。无需转换为因子,尽管您有字符值这一事实确实会强制转换您想要的数字。

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

我不知道为什么@TylerRinker 删除了他关于使用“na.strings”的回复,因为我认为这是正确的答案。

评论:一年后看这个我意识到a)OP误解了缺失值在因子或字符向量中是如何显示的,并且b)主要问题不是重新编码为R-的错误缺失值,OP 的代码已经正确完成了,而是@joran 识别的拼写错误。

关于替换 R 数据帧中由 "."编码的缺失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9351089/

相关文章:

C - 使用字符指针替换文件中的字符串

r - 使用 dplyr R 中的 mutate with across 将不存在的列添加到数据框

r - R 如何评估这些奇怪的表达式?

R:如何根据列表中的列条件汇总(聚合)dfs 的值?

r - 如何将回归分析的系数导出到电子表格或 csv 文件?

string - bash echo 中的 *G* 是什么意思?

r - 将长向量中的元素剪裁到 +/- 阈值

java - 替换 HashSet Java 成员

python - 如何将 Panda 中的多重索引更改为列

r - 如何用R中的查找代码用字符串替换列