【发布时间】:2021-11-14 15:36:28
【问题描述】:
我有以下代码:
alldata2019_v2 %>% tabyl(agerange,gender) %>%
adorn_totals(c("row","col")) %>%
mutate_if(is.numeric, format, big.mark = ",")
它提供了预期的表格:
| agerange | Female | Male | Total |
|---|---|---|---|
| 17 or less | 5 | 0 | 5 |
| 18 to 24 | 41,486 | 84,444 | 125,930 |
| 25 to 29 | 239,969 | 543,021 | 782,990 |
| 30 to 34 | 245,211 | 604,262 | 849,473 |
| 35 to 39 | 120,084 | 397,880 | 517,964 |
| 40 to 44 | 63,102 | 235,768 | 298,870 |
| 45 to 49 | 38,889 | 154,196 | 193,085 |
| 50 to 54 | 36,612 | 134,244 | 170,856 |
| 55 to 59 | 36,810 | 115,891 | 152,701 |
| 60 or more | 35,690 | 130,044 | 165,734 |
| Total | 857,858 | 2,399,750 | 3,257,608 |
问题是我找不到按行和按列添加百分比列的方法。有办法吗?
| agerange | Female | Male | Total | Female_pct | Male_pct | Age_pct |
|---|---|---|---|---|---|---|
| 17 or less | 5 | 0 | 5 | 100% | 0% | 0% |
| 18 to 24 | 41,486 | 84,444 | 125,930 | 33% | 67% | 4% |
| ... | ... | ... | ... | ... | ... | ... |
输入数据具有以下结构:
| gender | usertype | agerange |
|---|---|---|
| Male | Subscriber | 30 to 34 |
| Female | Subscriber | 30 to 34 |
| Female | Subscriber | 25 to 29 |
| Male | Subscriber | 25 to 29 |
| Male | Subscriber | 25 to 29 |
| Female | Subscriber | 35 to 39 |
【问题讨论】:
-
您正在使用哪些软件包?
janitor? -
我试过了,可惜没用
-
@camille tidyverse,lubridate,看门人,data.table 和 knitr
-
@DanielSossa 您可以查看解决方案中的代码。它对我来说很好用(还展示了一个带有 mtcars 数据的可重复示例)
-
adorn_percentages的输出需要乘以 100 并粘贴%,如果您需要按照预期的格式