如何解决R准报价内置函数聚合
下面是从名为starwars
的内置数据集中提取的代码。目标是能够构建一个名为filtered_starwars
的最终数据集对象,该对象将由最终用户根据预先指定的条件(输入)进行“分组”,“概括”。最终目标是能够使用此代码创建RShiny应用。
但是,在此之前,存在一些当前的问题。我创建了aggregating_choices
和mean
的{{1}}和median
和measures_choices
的{{1}}的列表。目的是将其输入到名为 height
的函数中,然后将使用预先指定的输入从最终mass
最终数据框中调出该功能。不幸的是,aggregate_statement
部分中不允许这样做。
我想创建一个最终的数据框,以对 filtered_starwars
, summarise
, hair_color
(意味着它们是唯一的),并将创建新的指定度量skin_color
和eye_color
作为以下列, height
,mass
,mean_height
,median_height
。
当前,分组依据不是唯一的,均值和中位数的合计函数不会弹出。
非常感谢您的支持或指导!谢谢!
mean_mass
解决方法
我不确定我是否正确理解了您的问题。以下是您的初衷吗?为此,我利用了across
1.0.0中新的dplyr
以及您可以使用all_of
将列名作为字符串提供的事实,因此您不必处理非标准评估:
library(dplyr)
hair_color_selection <- c("brown","black","white","none")
skin_color_selection <- c("fair","dark","white")
eye_color_selection <- c("blue","brown","yellow")
dimensions_groupBy <- c("hair_color","skin_color","eye_color")
measures_choices <- c("height","mass")
aggregating_choices <- list("mean" = mean,"median" = median)
starwars %>%
filter(
hair_color %in% hair_color_selection,skin_color %in% skin_color_selection,eye_color %in% eye_color_selection
) %>%
group_by(across(all_of(dimensions_groupBy))) %>%
summarise(across(all_of(measures_choices),aggregating_choices,.names = "{fn}_{col}"))
#> `summarise()` regrouping output by 'hair_color','skin_color' (override with `.groups` argument)
#> # A tibble: 9 x 7
#> # Groups: hair_color,skin_color [6]
#> hair_color skin_color eye_color mean_height median_height mean_mass
#> <chr> <chr> <chr> <dbl> <dbl> <dbl>
#> 1 black dark brown 182. 183 NA
#> 2 black fair brown 173 173 NA
#> 3 brown fair blue 185. 183 NA
#> 4 brown fair brown NA NA NA
#> 5 none dark blue 184 184 50
#> 6 none dark brown 188 188 84
#> 7 none white yellow 233 233 NA
#> 8 white fair blue 167 167 NA
#> 9 white fair brown 193 193 80
#> # ... with 1 more variable: median_mass <dbl>
由reprex package(v0.3.0)于2020-10-06创建
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。