【发布时间】:2021-09-18 14:44:20
【问题描述】:
我想计算数据框中每一列的百分比,并为每一列设置一个自定义名称。
考虑以下代码:
a<-structure(list(year = 2000:2005, Col1 = 1:6, Col2 = c(1L, 4L,
9L, 16L, 25L, 36L)), row.names = c(NA, -6L), class = "data.frame")
> a
year Col1 Col2
1 2000 1 1
2 2001 2 4
3 2002 3 9
4 2003 4 16
5 2004 5 25
6 2005 6 36
a<-a %>% rowwise() %>%
mutate(total = sum(across(starts_with("Col")), na.rm = T)) %>% data.frame()
a %>%
mutate_at(vars(starts_with("Col")) , funs(P = ./a$total * 100))
输出如下:
如何处理最后两列的名称(例如 per_Col1 和 per_Col2 而不是 Col1_P 和 Col2_P,主要问题)?有没有更好的方法(使用 dplyr 包)来做到这一点?(而不是计算列的总和,然后将每一列除以它)
【问题讨论】: