R:NA表示数值变量的平均值

时间:2017-09-20 19:41:21

标签: r dataframe subset mean

我正在尝试根据移动运营商确定一些值。我有一个主数据框,其中包含来自所有运营商的数据,我已经通过提供商从主数据框创建了3个单独的数据帧:

verizondf <- maindata[maindata$network == "Verizon",]
attdf <- maindata[maindata$network=="ATT",]
tmobiledf <- maindata[maindata$network=="TMobile",]

我想获得其中一个变量的平均值,&#34; download&#34;,这是一个数值。

在verizondf数据框架上,它可以正常工作:

> mean(verizondf$download)
[1] 462004.4

对于其他2,我得到NA:

> mean(attdf$download)
[1] NA

我想知道数据类型是否在某些时候发生了变化,但我检查过它仍然是数字:

> str(attdf$download)
 num [1:5516] 321585 50722 400085 287968 138301 ...

可能导致此问题的原因是什么?

1 个答案:

答案 0 :(得分:2)

其他人已经用他们的评论指出了这一点,我可以在这里给出一个“更全面”的解释。

使用?mean查看帮助手册页时,您将获得说明,包括以下信息:

  

用法

     

mean(x,...)

     

##默认S3方法:      mean(x,trim = 0,na.rm = FALSE,...)

查看“参数”部分,您将看到:

  

<强> na.rm
     一个逻辑值,表示在&gt;之前是否应该去除NA值。计算进行。

这告诉您mean的默认设置是剥离NA,如果您的数据包含NA,则会导致NA的平均值。

如果你想要一个数值均值计算你有NA值(这是好的,鉴于你有NA的事实...... 始终是真的!!!)你会使用带有参数mean的{​​{1}}。