有了下面这个小的可重复的例子,我如何按组添加总数,特别是,在我的例子中按年添加总数?我可以通过使用janitor包中的adorn_totals
添加总数,但我想知道按年(2012,2013)的总数。
的数据
library(dplyr)
library(tidyr)
library(janitor)
library(gt)
a <- structure(list(SampleDate = structure(c(15710, 15713, 15713,
15710, 15710, 15713, 15713, 15710, 15708, 15713, 15712, 15708,
15708, 15713, 15712, 15708), class = "Date"), year = c("2012",
"2013", "2013", "2012", "2013", "2013", "2013", "2013", "2013",
"2012", "2013", "2013", "2013", "2013", "2013", "2013"), F = c(0,
1, 0, 0, 0, 1, 0, 0, 0, 22, 0, 0, 0, 65, 0, 0), W = c(0, 0, 1,
0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0), S = c(0, 0, 0, 0, 1,
0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0), LF = c(1, 0, 0, 1, 0, 0, 0,
1, 0, 0, 0, 0, 1, 0, 0, 1)), class = "data.frame", row.names = c(NA,
-16L))
SampleDate year F W S LF
1 2013-01-05 2012 0 0 0 1
2 2013-01-08 2013 1 0 0 0
3 2013-01-08 2013 0 1 0 0
4 2013-01-05 2012 0 0 0 1
5 2013-01-05 2013 0 0 1 0
6 2013-01-08 2013 1 0 0 0
7 2013-01-08 2013 0 1 0 0
8 2013-01-05 2013 0 0 0 1
9 2013-01-03 2013 0 0 1 0
10 2013-01-08 2012 22 0 0 0
11 2013-01-07 2013 0 1 0 0
12 2013-01-03 2013 0 0 1 0
13 2013-01-03 2013 0 0 0 1
14 2013-01-08 2013 65 0 0 0
15 2013-01-07 2013 0 1 0 0
16 2013-01-03 2013 0 0 0 1
a %>%
group_by(year,SampleDate) %>%
summarise(W = sum(W), F = sum(F), LF = sum(LF), S = sum(S)) %>%
adorn_totals() %>%
gt(groupname_col = "year") %>%
tab_header(title = md("Fish Observations"), subtitle = md("Total number of fish by year"))
字符串
2条答案
按热度按时间z9ju0rcb1#
您可以使用
summary_rows()
作为组合计,grand_summary_rows()
作为总计。组是从数据框继承的。字符串
的数据
yr9zkbsy2#
也许使用
gt::summary_rows
有一个更直接的方法,但这里有一个选项可以让你接近你想要的结果,使用一些bind_rows
,summarise
和group_split
+map
步骤:字符串
的数据