我得到了下面的数据框和总结我的数据框的函数
library(dplyr)
library(tidyr)
df_so = data.frame(Ano=c(2017, 2017, 2017, 2018, 2018, 2018, 2019, 2019),
Metodo=c("x","y","x","x","x","x","z","x"))
df_so %>%
group_by(Ano, Metodo) %>%
tally()%>%
rename(quantidade = n)%>%
summarise(Ano = c("", Ano), Metodo = c('Total', Metodo),
across(quantidade, ~c(sum(., na.rm = TRUE), .)))
所以我得到了结果:
Ano Metodo quantidade
<chr> <chr> <int>
1 "" Total 3
2 "2017" x 2
3 "2017" y 1
4 "" Total 3
5 "2018" x 3
6 "" Total 2
7 "2019" x 1
8 "2019" z 1
但是,我想:
Ano Metodo quantidade
<chr> <chr> <int>
1 "2017" x 2
2 "2017" y 1
3 "2017" Total 3
4 "2018" x 3
5 "2018" Total 3
6 "2019" x 1
7 "2019" z 1
8 "2019" Total 2
我怎么能得到这样的结果呢?
2条答案
按热度按时间daolsyd01#
在
tally
之后,可以使用group_modify
和bind_rows
为每个组添加额外的summarise
行。由于在所需的输出中有一个字符
Ano
列,因此我在最后添加了一个额外的mutate
来实现这一点。sulc1iza2#
**1)**我们可以使用janitor包中的
adorn_totals
:给出:
**2)**可以使用
table
制作简单的二维布局。不使用封装。给出:
或者等同于这个管道
或长形式:
给出:
或者等同于这个管道