一个非常简单的问题,我无法谷歌/找到答案。
我有一个简单的文件-“ test.txt”
Gender arch1
M 99
F 97
M NA
我使用read.table将其加载到结果集中-工作正常。
attach(resultset)
现在,我想要 _something _ 能给我
mean(arch1, [_SOMETHING_]) = 65.3 (and *_NOT_* 98)
即不是na.rm = T或类似值。基本上,我想将NA视为0-并且我不想对矩阵和数据帧进行诸如here之类的复杂操作。
文件中的NA = 0。当然,我不能成为第一个想要这个的人吗?我不希望讨论NA和0是不是同一回事。我认为即使对失踪学生也要计算平均值是完全正确的!
答案 0 :(得分:5)
像这样吗?
sum(arch1, na.rm = T)/length(arch1)
答案 1 :(得分:4)
在使用NA
之前,您可以将mean
替换为零:
mean(replace(arch1, is.na(arch1), 0))
# [1] 65.33333
答案 2 :(得分:0)
您可以用resultset$arch1[is.na(resultset$arch1)]=0
将NA替换为零,然后计算arch1
列的平均值
答案 3 :(得分:-1)
下面是我对如何实施我现在给出的正确答案的解决方案的建议:
avg_without_NA = function(vec)
{
my_ans = sum(vec, na.rm = T)/length(vec)
return(my_ans)
}
因此,现在我要做的就是调用一个简单的函数,并将我的代码封装在其中!全面简化,更易于阅读!