【发布时间】:2022-11-17 06:03:15
【问题描述】:
这让我很头疼,想知道我是否能得到一些建议。
我有 2 个数据框
df1 = data.frame("ID" = c("a", "b", "a", "c", "a", "b"),
"date" = as.Date(c("2020-1-1", "2020-1-2", "2020-1-5","2020-1-10", "2020-1-10", "2020-1-15"))
df2 = data.frame("ID" = c("a", "b", "a", "c"),
"start" = as.Date(c("2019-12-30", "2020-1-1", "2020-1-5","2020-1-10")),
"end" = as.Date(c("2020-1-3", "2020-1-2", "2020-1-12","2020-1-14")))
对于 df2 中的每一行,我想计算在规定的开始/结束日期内发生的 df1 中的观察次数。
结果应如下所示:
df3 = data.frame("ID" = c("a", "b", "a", "c"),
"start" = as.Date(c("2019-12-30", "2020-1-1", "2020-1-5","2020-1-10")),
"end" = as.Date(c("2020-1-3", "2020-1-2", "2020-1-12","2020-1-14")),
"count" = c("1", "1", "2", "1"))
我见过的大多数解决方案都涉及一些 group_by 或 merge 函数,当我想要保留的 df2 中多次出现相同的 ID 时,这些函数会变得混乱。
有什么建议么?谢谢!
【问题讨论】:
-
无关但仅供参考:您不需要将数据框列名放在引号中。
标签: r