r - R - 每列整个数据帧的百分比
问题描述
我有一个数据框报告每个问题的答案数(这只是其中的一部分),我想获得每个问题的答案百分比。我找到了 adorn_percentages,但它通过除以整个数据框的值来计算百分比,同时,我只想要每列的百分比。每列共有 2230 个答案。我正在考虑使用 (x/2230)*100 之类的东西,但我不知道该怎么做。
df<-data.frame(q1=c(159,139,1048,571,93), q2=c(106,284,1043,672,125), q3=c(99,222,981,843,94))
q1 q2 q3
1 159 106 99
2 139 284 222
3 1048 1043 981
4 571 672 843
5 93 125 94
解决方案
我们可以colSums
在使长度相同后进行除法
100 * df/colSums(df)[col(df)]
或使用sweep
100 * sweep(df, 2, colSums(df), `/`)
或使用proportions
df[paste0(names(df), "_prop")] <- 100 * proportions(as.matrix(df), 2)
-输出
> df
q1 q2 q3 q1_prop q2_prop q3_prop
1 159 106 99 7.910448 4.753363 4.421617
2 139 284 222 6.915423 12.735426 9.915141
3 1048 1043 981 52.139303 46.771300 43.814203
4 571 672 843 28.407960 30.134529 37.650737
5 93 125 94 4.626866 5.605381 4.198303
推荐阅读
- c# - 如何在代理 C# 后面访问 Google Cloud Natural Language API
- sql - 尝试在 PostgreSQL 中进行示例查询,但 ROUND 函数无法正常工作?我的语法有问题吗?
- sql - BigQuery - 创建视图时如何使用嵌套列更改架构的顺序?
- flutter - 为什么我的 AppBar 标题会更改缩进?
- php - php 返回 '?' 尽管它们已正确保存在 mysql 中,但仍以正方形而不是特殊字符
- php - Doctrine 固定装置加载,有问题设置引用(外键)违反 -not-null 约束
- python - 如何在熊猫数据框中添加具有重复值的列?
- php - 使用 PhpSpreadsheet 在单元格中插入 HTML 代码
- python - “utf-8-sig”是否适合解码 UTF-8 和 UTF-8 BOM?
- r - 用列表和数据框聚合,函数如何知道聚合级别?