R语言sum()函数中rm.na参数的含义?为何计算结果异常?
为什么
sum(0.5, rm.na= TRUE)会返回1.5? 核心原因很简单:sum()函数根本没有rm.na这个参数,你写的是笔误,正确的参数名是na.rm。
当你把rm.na=TRUE传给sum()时,R不会直接报错(除非开启严格参数检查),而是把这个命名参数当成额外的待求和元素处理——在R里,逻辑值TRUE会自动转换成数值1,FALSE则转成0。所以sum(0.5, rm.na=TRUE)本质上等价于sum(0.5, 1),计算结果自然是0.5+1=1.5。
正确用法回顾
sum()的na.rm参数才是用来忽略NA值的:比如你有向量vec <- c(1, NA, 3),执行sum(vec, na.rm=TRUE)会返回4(自动剔除了NA);如果不加这个参数,结果会是NA。
内容的提问来源于stack exchange,提问作者LulY
相关产品推荐
相关产品推荐

