【问题标题】:concatenate _n and _mean in function在函数中连接 _n 和 _mean
【发布时间】:2025-12-19 07:00:11
【问题描述】:

我正在尝试编写一个函数来总结基于Sepal.LengthSepal.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")

结果将是: 短宽 1.4 0.4 短窄 1.65 0.45 长宽1.3 0.5

【问题讨论】:

  • 你能提供一个最小的工作示例和你想要的结果吗?
  • 欢迎来到 SO。请以可复制和粘贴的格式(例如使用 dput)提供示例数据。看看如何提供[一个最小的可重现示例可能会很有用。][1] [1]:*.com/questions/5963269/…
  • 看我的回答here,也可以看Programming with dplyr
  • @Cettt 我已经更新了,谢谢!

标签: r function dplyr


【解决方案1】:

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

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

【讨论】: