使用异常值参数过滤的列的平均值

时间:2017-11-17 08:20:34

标签: r

我正在开发一个基本上根据列中的两个异常值过滤掉行的函数。我传递的是列名,下部异常值和上部异常值。即使我让表过滤以一种有点丑陋的方式工作(建议在一行中表达赞赏),但我很难在之后返回该特定列的平均值。我尝试使用get(),因为列名是字符串,但是会收到错误。我也看过colMeans(),但无法使其发挥作用。

findMean <- function(colname, outlier_lower, outlier_upper) {
  initial.data <- survey %>%
    filter_(paste0(colname, "<", outlier_upper))
  filtered.data <- initial.data %>%
    filter_(paste0(colname, ">=", outlier_lower))
  mena <- mean(get(filtered.data$colname))
  return(mean)
}

1 个答案:

答案 0 :(得分:0)

没关系,我让它上班。

findMean <- function(colname, outlier_lower, outlier_upper) {
  initial.data <- survey %>%
    filter_(paste0(colname, "<", outlier_upper))
  filtered.data <- initial.data %>%
    filter_(paste0(colname, ">=", outlier_lower)) %>%
    summarise(mean = mean(get(colname)))

  return(filtered.data$mean)
}