r - 使用管道汇总多列数据
问题描述
我希望使用简洁的小标题中的管道报告数据集中某些列( price
、、age
和dist
)的最小值、最大值和平均值。houses
现在,我有以下代码,它使用 1x9 tibble 产生了一个相当不雅的解决方案:
houses %>%
select(price, age, dist) %>%
summarize_each(list(min = min, max = max, mean = mean))
我希望使用管道创建一个更有条理的解决方案,将所选数据作为行,将汇总统计信息(最小值、最大值、平均值)作为列,从而产生 3x3 小标题。有任何想法吗?
解决方案
您可以先获取长格式数据,然后计算每列的汇总统计信息。这是一个mtcars
数据集的例子。
library(dplyr)
library(tidyr)
mtcars %>%
select(mpg, disp, cyl) %>%
pivot_longer(cols = everything()) %>%
group_by(name) %>%
summarise(min = min(value, na.rm = TRUE),
max = max(value, na.rm = TRUE),
mean = mean(value, na.rm = TRUE))
# name min max mean
# <chr> <dbl> <dbl> <dbl>
#1 cyl 4 8 6.19
#2 disp 71.1 472 231.
#3 mpg 10.4 33.9 20.1
推荐阅读
- android - TextView 不关注对讲模式
- java - Bing Autosuggest api for an android app,但它给出的响应代码为 404 并且找不到资源,但相同的代码在 java 编译器中工作正常
- javascript - 在一个简单的 Web 应用程序中保存单选按钮的最后状态。我需要数据库吗?
- node.js - 如何让 Passport.js 在 Adonis 框架中工作
- php - YouTube API v3 抓取时间
- php - 如何将值(条目)从 WPForm Wordpress 存储到 PhpAdmin 数据库
- entity-framework - 如何隐藏已删除的实体
- javascript - Dynamodb 条件更新根据条件添加或删除
- docker - 如何在 docker 文件中传递这一行。[/runjd.sh installjdk -Dname=javaversion]
- python - 将方法放在views.py中的类中