使用汇总()计算平均值的标准评估

时间:2017-10-26 07:03:36

标签: r dplyr

所以我将保留在数据框中作为输入的列名称,并且想要计算给定列的平均值(假设c是函数中的参数)。 / p>

编辑:试图在这里重新创建一个场景。

states <- c("Washington", "Washington", "California", "California")
random.data <- c(10, 20, 30, 40)
data <- data.frame(states, random.data)

data.frame <- data %>%
              group_by(states) %>%
              summarise_(average = mean(paste0("random", ".data")))

当我尝试这样做时,我收到以下错误:

Warning message:
In mean.default(paste0("random", ".data")) :
    argument is not numeric or logical: returning NA

我对标准评估有一个想法,但由于某种原因,它不适合这种平均功能。

1 个答案:

答案 0 :(得分:1)

我们可以将sym!!

一起使用
col <- paste0("random", ".data")
data %>%
   group_by(states) %>% 
   summarise(average = mean(!! rlang::sym(col)))
   ##or use directly
   #summarise(average = mean(!! rlang::sym(paste0("random", ".data"))))

# A tibble: 2 x 2
#      states average
#     <fctr>   <dbl>
#1 California      35
#2 Washington      15

或另一个选项是get

data %>%
    group_by(states) %>% 
    summarise(average = mean(get(paste0("random", ".data"))))
# A tibble: 2 x 2
#     states average
#      <fctr>   <dbl>
#1 California      35
#2 Washington      15