汇总dplyr

时间:2018-03-27 10:20:31

标签: r dplyr

我想在不知道列名的情况下总结一个分组的data.frame。但我所知道的是,该功能始终位于此data.frame中的第3位(列),这可能吗?

df <- data_frame(date = rep(c("2017-01-01", "2017-01-02", "2017-01-03"), 2),
             group = rep(c("A", "B"), 3),
             temperature =  runif(6, -10, 30),
             percipitation = runif(6, 0,5)
             )

parameter <- "perc"

df1 <- df %>%
  select(date, group, starts_with(parameter)) %>%
  group_by(group) %>%
  summarise(
  avg = mean(percipitation)
 )

在此示例中,代码有效,但当然仅适用于参数&#39; perc&#39;而不是为了临时&#39;或者。

 avg = mean(df[[3]]) 

或类似的东西不起作用。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您可以使用select(group, 3)仅保留分组变量和第三列。然后可以使用函数summarise_all()来计算平均值。

df %>%
    select(group, 3) %>%
    group_by(group) %>%
    summarise_all(
        funs(mean)
    )