意味着使用dplyr排除异常值

时间:2014-11-06 00:52:59

标签: r statistics

我想知道是否有办法使用R中的dplyr包来计算排除异常值的平均值?我试图做这样的事情,但没有奏效:

library(dplyr)
w = rep("months", 4)
value = c(1, 10, 12, 9)
df = data.frame(w, value)
output = df %>% group_by(w) %>% summarise(m = mean(value, na.rm = T, outlier = T))

所以在上面的例子中,输出应该是10.333(平均10,12和9)而不是8(平均值为1,10,12,9)

谢谢!

1 个答案:

答案 0 :(得分:4)

使用outlier包的一种方式就是这样。

library(outlier)
library(dplyr)

df %>%
    group_by(w) %>%
    filter(!value %in% c(outlier(value))) %>%
    summarise(m = mean(value, na.rm = TRUE))

#       w        m
#1 months 10.33333