【发布时间】:2021-04-20 15:32:16
【问题描述】:
我想在数据清理后最后总结一下我的数据。
这是我的数据结构:
structure(list(ID = structure(c(1L, 3L, 4L, 2L, 2L, 3L, 3L, 3L,
3L, 4L, 4L, 4L, 5L, 6L, 6L, 6L, 6L, 6L, 6L, 6L), .Label = c("01002",
"01004", "01005", "01006", "01009", "01011"), class = "factor"),
date = structure(c(17645, 17645, 17645, 17646, 17646, 17646,
17646, 17646, 17646, 17646, 17648, 17646, 17648, 17646, 17648,
17646, 17646, 17646, 17649, 17646), class = "Date"), category = structure(c(1L,
1L, 1L, 2L, 4L, 7L, 3L, 3L, 1L, 6L, 6L, 6L, 7L, 7L, 7L, 6L,
2L, 5L, 3L, 3L), .Label = c("A", "B", "C", "D", "F", "G",
"Q"), class = "factor"), level = c(3000, 3000, 1000, 1000,
1000, 9999, 9999, 9999, 9999, 9999, 9999, 9999, 8000, 9999,
9999, 9999, 300, 300, 300, 9999)), class = "data.frame", row.names = c(NA,
-20L))
这是我目前的代码:
dataDF %>%
dplyr::group_by(category) %>%
dplyr::summarize(n = n()) %>%
dplyr::mutate(percentage = (prop.table(n))*100) %>%
arrange(desc(n))
结果如下:
category n percentage
<fct> <int> <dbl>
1 A 4 20
2 C 4 20
3 G 4 20
4 Q 4 20
5 B 2 10
6 D 1 5
7 F 1 5
现在我想添加一个包含日期聚合的新列。
我需要为每个类别添加每个 ID 的平均计数日期。
这是数据的样子(随机数,未计算)。
category n percentage mean_reported_days_per_ID
<fct> <int> <dbl> <int>
1 A 4 20 2
2 C 4 20 3.4
3 G 4 20 4
4 Q 4 20 1
5 B 2 10 3.5
6 D 1 5 2
7 F 1 5 1.1
我不确定如何实现。我尝试添加另一个 mutate() 并计算每个 ID 的平均天数并将其(与另一个分组依据)添加到数据表中。
感谢您的帮助!
【问题讨论】: