计算均值并处理 NA

Calculate a mean and deal with NA

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

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

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

new_df 应该是这样的:

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

这是我试过的代码:

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

它的问题是它省略了 NA 并且只有 returns 这个:

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

你能帮忙吗?

您可以更改 aggregate()

的默认值
aggregate(as.numeric(VALUE) ~ LETTER, df, function(x) mean(x, na.rm=TRUE), 
    na.action = na.pass)