列和rbind上的多个操作

列和rbind上的多个操作,r,dplyr,R,Dplyr,我想用dplyr计算平均值、中位数和其他一些东西。由于我只读了几篇介绍(大部分都很老),我想知道以下内容是否可行: iris %>% group_by_("Species") %>% summarise_at(.vars = vars(starts_with("Sepal")), .funs=perform_some_operation) # A tibble: 6 x 4 Species Sepal.Length Sepal.Width Operation

我想用
dplyr
计算平均值、中位数和其他一些东西。由于我只读了几篇介绍(大部分都很老),我想知道以下内容是否可行:

iris %>% group_by_("Species") %>%
   summarise_at(.vars = vars(starts_with("Sepal")), .funs=perform_some_operation)

# A tibble: 6 x 4
     Species Sepal.Length Sepal.Width Operation
      <fctr>        <dbl>       <dbl>    <fctr>
1     setosa        5.006       3.428      mean
2 versicolor        5.936       2.770      mean
3  virginica        6.588       2.974      mean
4     setosa          5.0         3.4    median
5 versicolor          5.9         2.8    median
6  virginica          6.5         3.0    median
iris%>%按物种分组%>%
在(.vars=vars(从(“萼片”)开始)处总结,.funs=执行一些操作)
#一个tibble:6x4
种萼片。长度萼片。宽度操作
1 setosa 5.006 3.428平均值
2花色5.936 2.770平均值
3弗吉尼亚州平均6.588 2.974
4刚毛5.0 3.4中位数
5彩色5.9 2.8中位数
6弗吉尼亚州6.5 3.0中位数
为了清晰起见,只添加了
操作
-列。我不是绝对需要它

到目前为止,我唯一能找到的是在(.vars=vars(以(“萼片”)开始)和.funs=c(Mean=“Mean”,Median=“media”)上总结。然而,这首先是缓慢的,其次是以列而不是行的形式创建额外的输出


编辑:我不需要生成结果的操作,而是在
summary\u at

这就是想法。诀窍是
收集
并清理熔化的colname,即

library(tidyverse)

iris %>% 
 group_by(Species) %>% 
 select(starts_with('Sepal')) %>% 
 summarise_all(funs(n1 = mean, n2 = median)) %>% 
 gather(var, val, -Species) %>% 
 mutate(var = gsub('_.*', '', var)) %>% 
 group_by(var) %>% 
 mutate(new = seq(n())) %>% 
 spread(var, val) %>% 
 arrange(new) %>% 
 select(-new)

#Adding missing grouping variables: `Species` - Innocent warning
#一个tible:6 x 3
种萼片。长萼片。宽
1 setosa 5.006 3.428
2花色5.936 2.770
3弗吉尼亚州6.5882.974
4 setosa 5.000 3.400
5花色5.900 2.800
6弗吉尼亚州6.500 3.000

现在还不清楚你想要什么,因为我认为你所说的正是你想要的。“操作”列的要点是什么?除了按物种分组外,您是否只希望对每个列的某些部分应用平均值或中位数?或者你只想对萼片应用平均值。长度和中间值。萼片。宽度?正如我在代码下面写的。操作栏用于澄清前三行是物种的平均值。我希望将平均值和中值应用于所有带有“Sepal”的列。感谢您提供的快速解决方案。一般来说,这似乎与在(.vars=vars(以(“萼片”)开头),.funs=c(n1=”平均值“,n2=”中间值”)
中使用
总结相同。至少在第三行和第四行。
# A tibble: 6 x 3
     Species Sepal.Length Sepal.Width
      <fctr>        <dbl>       <dbl>
1     setosa        5.006       3.428
2 versicolor        5.936       2.770
3  virginica        6.588       2.974
4     setosa        5.000       3.400
5 versicolor        5.900       2.800
6  virginica        6.500       3.000