查找每个组和每个所有行的百分比,并将它们作为新列添加到dataframe中
我有下面的数据框,我想添加2个新列。第一个查找每个组和每个所有行的百分比,并将它们作为新列添加到dataframe中,r,R,我有下面的数据框,我想添加2个新列。第一个Cases1将具有每年龄组每行病例的百分比,第二个Cases2将具有每行病例的百分比: Cm<-structure(list(`Age group` = c("00-04", "00-04", "05-14", "05-14", "15-24", "15-24", "25-49", "25-49&q
Cases1
将具有每年龄组每行病例的百分比,第二个Cases2
将具有每行病例的百分比:
Cm<-structure(list(`Age group` = c("00-04", "00-04", "05-14", "05-14",
"15-24", "15-24", "25-49", "25-49", "50-64", "50-64", "65-79",
"65-79", "80+", "80+"), Gender = c("Female", "Male", "Female",
"Male", "Female", "Male", "Female", "Male", "Female", "Male",
"Female", "Male", "Female", "Male"), Cases = c(64578, 70518,
187568, 197015, 414405, 388138, 1342394, 1206168, 792180, 742744,
400232, 414613, 282268, 198026)), row.names = c(NA, -14L), groups = structure(list(
`Age group` = c("00-04", "05-14", "15-24", "25-49", "50-64",
"65-79", "80+"), .rows = structure(list(1:2, 3:4, 5:6, 7:8,
9:10, 11:12, 13:14), ptype = integer(0), class = c("vctrs_list_of",
"vctrs_vctr", "list"))), row.names = c(NA, 7L), class = c("tbl_df",
"tbl", "data.frame"), .drop = TRUE), class = c("grouped_df",
"tbl_df", "tbl", "data.frame"))
# A tibble: 14 x 3
# Groups: Age group [7]
`Age group` Gender Cases
<chr> <chr> <dbl>
1 00-04 Female 64578
2 00-04 Male 70518
3 05-14 Female 187568
4 05-14 Male 197015
5 15-24 Female 414405
6 15-24 Male 388138
7 25-49 Female 1342394
8 25-49 Male 1206168
9 50-64 Female 792180
10 50-64 Male 742744
11 65-79 Female 400232
12 65-79 Male 414613
13 80+ Female 282268
14 80+ Male 198026
Cm我认为这应该为您解决:
library(dplyr)
Cm %>%
group_by(`Age group`) %>%
mutate(Cases1 = Cases/sum(Cases) * 100) %>%
ungroup %>%
mutate(Cases2 = Cases/sum(Cases) * 100)
## A tibble: 14 x 5
# `Age group` Gender Cases Cases1 Cases2
# <chr> <chr> <dbl> <dbl> <dbl>
# 1 00-04 Female 64578 47.8 0.964
# 2 00-04 Male 70518 52.2 1.05
# 3 05-14 Female 187568 48.8 2.80
# 4 05-14 Male 197015 51.2 2.94
# 5 15-24 Female 414405 51.6 6.18
# 6 15-24 Male 388138 48.4 5.79
# 7 25-49 Female 1342394 52.7 20.0
# 8 25-49 Male 1206168 47.3 18.0
# 9 50-64 Female 792180 51.6 11.8
#10 50-64 Male 742744 48.4 11.1
#11 65-79 Female 400232 49.1 5.97
#12 65-79 Male 414613 50.9 6.19
#13 80+ Female 282268 58.8 4.21
#14 80+ Male 198026 41.2 2.96
库(dplyr)
厘米%>%
分组依据(`Age group`)%>%
变异(案例1=案例/总和(案例)*100)%>%
解组%>%
变异(案例2=案例/总数(案例)*100)
##一个tibble:14x5
#“年龄组”性别病例1病例2
#
#1 00-04女64578 47.8 0.964
#2 00-04男70518 52.2 1.05
#3 05-14女187568 48.8 2.80
#4 05-14男197015 51.2 2.94
#5 15-24女性414405 51.6 6.18
#6 15-24男388138 48.4 5.79
#725-49女性134239452.720.0
#8 25-49男1206168 47.3 18.0
#950-64女性79218051.611.8
#10 50-64男742744 48.4 11.1
#11 65-79女性400232 49.1 5.97
#12 65-79男414613 50.9 6.19
#1380+女性28226858.84.21
#14 80+男性198026 41.2 2.96
Related:到目前为止,您尝试了什么?