计算均值并处理 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)
我得到了一个如下所示的数据集 (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)