【发布时间】:2021-11-22 08:24:48
【问题描述】:
我有以下数据:
data <- structure(list(class = c(1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3,
3, 3, 3, 3, 3, 1, 1, 2, 2, 2, 3, 3, 3, 3, 5, 5, 5, 5, 5, 5, 5,
5), ID = c(700, 700, 800, 800, 800, 300, 300, 300, 300, 555,
555, 555, 555, 555, 555, 555, 555, 700, 700, 900, 900, 800, 300,
300, 300, 300, 555, 555, 555, 555, 555, 555, 555, 555), type = c(1,
1, 2, 2, 2, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1), date = structure(c(1610668800,
1610668800, 1610668800, 1610668800, 1610668800, 1610668800, 1610668800,
1610668800, 1610668800, 1610668800, 1610668800, 1610668800, 1610668800,
1610668800, 1610668800, 1610668800, 1610668800, 1610841600, 1610841600,
1610841600, 1610841600, 1610841600, 1610841600, 1610841600, 1610841600,
1610841600, 1610841600, 1610841600, 1610841600, 1610841600, 1610841600,
1610841600, 1610841600, 1610841600), class = c("POSIXct", "POSIXt"
), tzone = "UTC")), row.names = c(NA, -34L), class = c("tbl_df",
"tbl", "data.frame"))
我想做的是计算每个日期和每个班级的 ID 列的计数/唯一次数,然后计算 1,2 和 3 的每种类型。例如,虽然 ID 700 出现了 2 次2021-01-15 我想贡献一次百分比。
我尝试了以下不同的变体,但没有成功:
data_perc <- data %>%
tabyl(class, type)
所以我的结果应该如下所示:
class date type1 type2 type3
1 2021-01-15 30% 30% 40%
1 2021-01-17 33% 33% 34%
2 2021-01-15 60% 20% 20%
提前谢谢你:)
【问题讨论】:
标签: r dplyr percentage proportions