r - 有没有计算百分比的R函数?
问题描述
我有一个名为 crash_stats_TA 的 DF,如下所示。
TA_code | TA_name | 崩溃 |
---|---|---|
061 | 灰色的 | 126 |
062 | 布勒 | 345 |
063 | 韦斯特兰 | 24 |
064 | 提马鲁 | 112 |
我正在尝试使用 mutate 创建一个名为 crash_perc 的新列。这是我到目前为止所尝试的:
library(dplyr) # data manipulation
crash_stats_TA <- crash_stats_TA %>%
group_by(TA_code, TA_name) %>%
mutate(crashes_perc = round(Crashes/sum(Crashes, na.rm = T)*100,2))
但是,这会返回一个新的 crash_perc 列,每个 TA_code 和 TA_name 的值为 100,因此每个区域都有 100。像这样:
这会是什么原因。不太确定如何正确执行此步骤
解决方案
使用scales::percent
,
crash %>%
mutate(crashes_perc = scales::percent(Crashes/sum(Crashes, na.rm = T)))
TA_code TA_name Crashes crashes_perc
<int> <chr> <int> <chr>
1 61 Grey 126 20.8%
2 62 Buller 345 56.8%
3 63 Westland 24 4.0%
4 64 Timaru 112 18.5%
group_by
如果每组有足够的样本量,则添加。
推荐阅读
- python - 如何在 Python 中从列表中删除重复列表
- docker - 如何在 Docker 容器中设置附加卷的权限?
- python - 我如何才能在“内存中”专门使用弹性搜索索引?
- google-cloud-platform - API 网关不返回响应
- python - OperationFailure:尽管凭据正确,但在插入 MongoDB 集合时身份验证失败
- bash - 将命令行参数附加到 Bash 数组
- c - 带查找表的乘法逆
- python - 为什么 DF 有时会自动更新,有时不会?
- node.js - Mongoose 多个查询在第二次查询后返回
- regex - 如果一列包含 5 列的某些文本,Google 工作表条件格式会突出显示 2 列