计算平均值并处理NA

时间:2018-01-19 10:56:39

标签: r mean na

我得到了一个如下所示的数据集(df):

LETTER  |  VALUE  |
A       |   2     |
A       |   3     |
B       |   4     |
B       |   NA    |
B       |   6     |
B       |   NA    |
C       |   NA    |
C       |   NA    |

我正在寻找一种基于每个LETTER的均值来创建第二个数据库(new_df)的方法。但我需要知道哪个字母有NA。

new_df应如下所示:

LETTER  |  VALUE  |
A       |   2,5   |
B       |   5     |
C       |   NA    |

这是我尝试过的代码:

new_df <- aggregate(as.numeric(VALUE) ~ LETTER, df, mean)

它的问题在于它省略了NA并且只返回它:

LETTER  |  VALUE  |
A       |   2,5   |
B       |   5     |

你能帮忙吗?

1 个答案:

答案 0 :(得分:3)

您可以更改aggregate(as.numeric(VALUE) ~ LETTER, df, function(x) mean(x, na.rm=TRUE), na.action = na.pass)

的默认值
{{1}}