首页 > 解决方案 > 在函数中连接 _n 和 _mean

问题描述

我正在尝试编写一个基于Sepal.Length和总结两个指标的函数Sepal.Year,这是我的尝试。我是不是走错了路?

df = structure(list(Sepal.Length = c("short","short", "long", "short"),
Sepal.Width = c("wide", "narrow", "wide", "narrow"), 
Petal.Length = c(1.4, 1.8, 1.3, 1.5), 
Petal.Width = c(0.4, 0.7, 0.5, 0.2),                                                                                                             
Species = structure(c(1L, 1L, 1L, 1L), 
.Label = c("setosa","versicolor", "virginica"), class = "factor")),
.Names = c("Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width", "Species"),                                                                                                                                                                                                
row.names = c(NA, 4L), class = "data.frame")                                                                                                                                                                                                                                                            

mysummary <- function(df, Criteria1, Criteria2, Metric1, Metric2){
    df %>%
        group_by(.dots=c(Criteria1,Criteria2)) %>%
        summarise_each(funs(mean, n()),Metric1,Metric2) %>%
        filter(paste(Metric1,"_n") > 3) %>%
        arrange(desc(paste(Metric1,"_mean")))}

mysummary(df,"Sepal.Length","Sepal.Width","Petal.Length","Petal.Width")

结果将是: Short Wide 1.4 0.4 Short Narrow 1.65 0.45 Long Wide 1.3 0.5

标签: rfunctiondplyr

解决方案


您可以使用以下代码找到条件均值

result <- summarise(group_by(Df_name,c("Year","Name")), Metric1_mean=mean(Metric1),Metric2_mean = mean(Metric2))

推荐阅读