r - 创建具有特定汇总统计的变量表
问题描述
我正在尝试按以下格式制作所有数值变量(即特征)的表格:
Feature | Count | % Missing | Cardinality | Min. | 1st Quartile | Mean | Median | 3rd Quartile | Max. | Std. Dev. |
--------|-------|------------|-------------|------| --------------|------|--------|--------------|---- --|-----------| | | | | | | | | | | |
因此,每一行表示一个特定的数值变量,每一列表示上面显示的统计数据(计数、缺失百分比、基数、最小值、第一四分位数、平均值、中位数、第三四分位数、最大标准差)
假设我的数据集称为 Mashable,我的数值变量称为 X、Y 和 Z。我将如何创建此表?
提前致谢!
解决方案
如果您已经在使用dplyr
,您可以利用长形数据和分组,并将您需要的所有功能视为摘要。这使您可以轻松扩展,因此 3 个变量的工作流程与 25 或 100 个变量的工作流程相同。它还可以相对快速地应用您想要的任何函数。
我用 x、y 和 z 制作了虚拟数据,然后在其上绑定了几行NA
s,以显示缺失值计数。将其收集为长数据,按变量分组,然后使用您想要的任何汇总函数。我开始了你命名的前几个。这为您提供了您要求的格式。
library(tidyverse)
tibble(
x = rnorm(100, mean = 1, sd = 1),
y = rnorm(100, mean = 10, sd = 1),
z = rexp(100, rate = 0.01)
) %>%
bind_rows(tibble(x = c(NA, NA), y = c(NA, NA), z = c(NA, NA))) %>%
gather(key = variable, value = value) %>%
group_by(variable) %>%
summarise(
count = n(),
missing = sum(is.na(value)),
share_missing = missing / count,
mean = mean(value, na.rm = T),
sd = sd(value, na.rm = T),
q1 = quantile(value, 0.25, na.rm = T)
)
#> # A tibble: 3 x 7
#> variable count missing share_missing mean sd q1
#> <chr> <int> <int> <dbl> <dbl> <dbl> <dbl>
#> 1 x 102 2 0.0196 0.997 1.08 0.246
#> 2 y 102 2 0.0196 9.81 0.962 9.10
#> 3 z 102 2 0.0196 106. 90.6 39.9
由reprex 包(v0.2.0) 于 2018 年 5 月 20 日创建。
推荐阅读
- javascript - Sapper/Svelte - 需要 @html 包含的内容来调用组件
- python - Python - 评估 Pandas DataFrame 中的两个表达式并创建新列
- sql - 检查一个多边形是否与每个集群中的其他多边形相交
- node.js - 使用 express 框架的 node.js 的便携式 https 解决方案
- c++ - C++ GDIPlus 位图锁定位结果 WrongState(8)
- python - 使用 mock_open 为 builts.open 引发异常
- android - gradle 中定义的存储库凭据是否存储在生成的 APK 中的某个位置?
- mysql - 如何在 django 中创建条件注释?
- reactjs - 如何访问 useEffect() 挂钩中的变量
- python - 如何生成三个异常点,使它们明显远离 python 中的正常数据?