r - 如何使用 tidyverse 将 summarise() 函数分成几列?
问题描述
我正在为这个tidyverse
包裹而苦苦挣扎。我正在使用mpg
R 中的数据集来显示我面临的问题(如果关系不相关,请忽略,这只是为了解释我的问题)。
我想要做的是获得按制造商和年份分组的平均“displ”并且同时(这是我无法弄清楚的),每个燃料类型变量都有几列(即:柴油平均值一栏,汽油平均值一栏等)。
这是代码的第一部分,我是 R 新手,所以我真的不知道我需要添加什么......
mpg %>%
group_by(manufacturer, year) %>%
summarize(Mean. = mean(c(displ)))
# A tibble: 30 × 3
# Groups: manufacturer [15]
manufacturer year Mean.
<chr> <int> <dbl>
1 audi 1999 2.36
2 audi 2008 2.73
3 chevrolet 1999 4.97
4 chevrolet 2008 5.12
5 dodge 1999 4.32
6 dodge 2008 4.42
7 ford 1999 4.45
8 ford 2008 4.66
9 honda 1999 1.6
10 honda 2008 1.85
# … with 20 more rows
任何帮助表示赞赏,谢谢。
解决方案
或许,我们需要重塑成“宽”
library(dplyr)
library(tidyr)
mpg %>%
select(manufacturer, year, fl, displ) %>%
pivot_wider(names_from = fl, values_from = displ, values_fn = mean)
-输出
# A tibble: 30 x 7
manufacturer year p r e d c
<chr> <int> <dbl> <dbl> <dbl> <dbl> <dbl>
1 audi 1999 2.36 NA NA NA NA
2 audi 2008 2.73 NA NA NA NA
3 chevrolet 2008 6.47 4.49 5.3 NA NA
4 chevrolet 1999 5.7 4.22 NA 6.5 NA
5 dodge 1999 NA 4.32 NA NA NA
6 dodge 2008 NA 4.42 4.42 NA NA
7 ford 1999 NA 4.45 NA NA NA
8 ford 2008 5.4 4.58 NA NA NA
9 honda 1999 1.6 1.6 NA NA NA
10 honda 2008 2 1.8 NA NA 1.8
# … with 20 more rows
推荐阅读
- php - 用 Woocommerce 3 中特定产品类别的产品替换追加销售
- java - 排序和过滤对象列表
- haskell - 模式不匹配:(_:_:_)
- android - 为什么在 RxJava 的每个 Observable 方法中都使用 subscribeOn
- c# - 使用 C# 中设置的键值创建数据表
- python - MultipleFileField wtforms
- java - JSP Servlet getParameter 给出 null
- android - 播放后停止 AnimatedVectorDrawable 动画
- jooq - 将记录提取到可变 POJO Jooq
- javascript - 使用 Upload 以 HTML 格式显示 XML 数据