R:使用dplyr中的管道%>%计算数据框列表中的列的平均值

may*_*cca 0 r dplyr

我想%>%dplyr包装中使用管道变得更好.我理解使用pipes(%>%)的全部意义在于它用管道连接的那个替换了函数中的第一个参数.也就是说,在这个例子中:

area = rep(c(3:7), 5) + rnorm(5)
Run Code Online (Sandbox Code Playgroud)

管道

area %>% 
  mean
Run Code Online (Sandbox Code Playgroud)

相等的正常功能

`mean(area)`.
Run Code Online (Sandbox Code Playgroud)

我的问题是它何时到达数据帧.我想在数据帧列表中拆分数据帧,而不是计算每area列的平均值.但是,我无法弄清楚如何调用列而不是数据帧?

我知道我可以逐年获得手段,aggregate(area~ year, df, mean)但我想练习管道.

谢谢!


# Dummy data
set.seed(13)
df<-data.frame(year = rep(c(1:5), each = 5),
               area = rep(c(3:7), each = 5) + rnorm(1))

# Calculate means. 
# Neither `mean(df$area)`, `mean("area")` or `mean[area]` does not work. How to call the column correctly?

df %>% 
  split(df$year) %>%
  mean
Run Code Online (Sandbox Code Playgroud)

Nel*_*Gon 5

这个?

 df %>% 
      group_by(year) %>% 
      summarise(Mean=mean(area))
Run Code Online (Sandbox Code Playgroud)