r - 如何获取df中所有分类变量的频率和百分比
问题描述
我的 df,Chap3,有大约 50 个分类变量。我想为每个包含百分比的分类变量生成一个频率表。下面的代码适用于单个 var bsex,但我无法弄清楚如何为所有分类变量重复它。已尝试使用 apply 、 usingselect_if(is.factor)
等的变体,但无济于事。
Chap3 %>%
count(bsex) %>%
mutate(percent = round(n / sum(n) * 100,1))
解决方案
对于这种情况,最好以长格式获取分类数据。
library(dplyr)
library(tidyr)
Chap3 %>%
pivot_longer(cols = where(is.factor)) %>%
count(name, value) %>%
group_by(name) %>%
mutate(n = round(prop.table(n), 1)) %>%
ungroup
# name value n
# <chr> <fct> <dbl>
#1 bsex 0 0.4
#2 bsex 1 0.6
#3 csex 0 0.5
#4 csex 1 0.5
数据
如果您以可重现的格式提供数据,则更容易提供帮助
set.seed(123)
Chap3 <- data.frame(id = 1:10,
bsex = factor(sample(c(1, 0), 10, replace = TRUE)),
csex = factor(sample(c(1, 0), 10, replace = TRUE)))
推荐阅读
- microsoft-graph-api - 页面:copyToSection 使用 OneNote 和 Microsoft 图形 API 失败,错误代码为 19999
- python - 如何理解 scikit-learn 逻辑回归代码中的损失函数?
- django - POST 的 Django 测试总是返回 400
- python-3.x - TensorFlow AlphaDropout:排名未定义
- bash - 为什么这个导出命令不导出 shell 函数?
- reactjs - React Virtualized - 列表跳过所有其他项目
- javascript - 在 SDKv2 中为 Alexa 技能实现 PauseIntent 和 ResumeIntent
- node.js - 我必须克隆节点模型模块以使其在类或函数中工作
- json - 何时使用指向 JSON 嵌套结构的指针?
- node.js - 为什么Http请求永远不会结束