r - R - 在另一个数据框中的事件之前计算报告的数量
问题描述
我有以下两个数据框:
> Reaction_per_park_per_day_3
Park Date
14st NE - Coventry 2019-05-08
14st NE - Coventry 2019-05-15
14st NE - Coventry 2019-08-09
14st NE - Coventry 2019-08-22
Airways Park 2018-11-27
Airways Park 2020-12-16
Airways Park 2020-12-24
Arbour Lake East 2017-01-02
Arbour Lake East 2017-01-03
Arbour Lake East 2017-01-07
Arbour Lake East 2017-01-08
> Reports_per_park_per_day_3
Park Month
14st NE - Coventry 2019-05-16
14st NE - Coventry 2019-05-17
14st NE - Coventry 2019-08-14
Airways Park 2021-04-02
Arbour Lake East 2017-01-04
Arbour Lake East 2017-02-04
我想在 Reports_per_park_per_day_3 数据框 (Number_AC) 中添加一行,这将在同一公园内的 Reports_per_park_per_day_3 中的每个事件之前计算 Reaction_per_park_per_Day_3 数据框中的事件总数。因此,我希望 Reports_per_park_per_day_3 数据框看起来像这样:
Park Month Number_AC
14st NE - Coventry 2019-05-16 2
14st NE - Coventry 2019-05-17 2
14st NE - Coventry 2019-08-14 3
Airways Park 2021-04-02 2
Arbour Lake East 2017-01-04 2
Arbour Lake East 2017-02-04 4
我尝试了以下方法,但没有成功,因为它给了我整行的 0 个事件:
> library(dplyr)
> Reports_per_park_per_day_3 <- Reports_per_park_per_day_3 %>%
left_join( Reaction_per_park_per_day_3, by="Park" ) %>%
filter( Date <= Month ) %>%
group_by( Park, Month) %>%
summarize(Number_AC = sum(Month <= Date & Month >= Date), .groups = "drop") %>%
distinct
解决方案
通过使用合并,您可以做您想做的事情。请记住,此解决方案不是最快的,如果您的数据帧很大,可能会导致内存问题。
Reaction_per_park_per_day_3 %>%
merge( Reports_per_park_per_day_3 , by=NULL ) %>%
filter( Date <= Month,Park.x==Park.y ) %>%
select(Park = Park.x,Month,Date) %>%
count(Park,Month,name = "Number_AC")
推荐阅读
- tensorflow - 使用 JointDistributionSequential 的 Tensorflow 概率分层模型
- python - 使用 python 从网站上获取 json 字符串
- javascript - 我试图让我的盒子的边框指向屏幕的一侧。有什么建议吗?
- javascript - 将 PV(蛋白质查看器)与 Vue.js 集成
- javascript - 将字符串转换为数组,去掉 + 字符
- python - Python - 对象问题的VTK限制旋转(四元数)
- python - 石头、剪刀、纸用 Python
- arrays - Symfony - ChoiceType 表单 - 数组到字符串的转换错误
- html - 站点右侧的空白区域。仅在 chrome 手机上
- c# - Rdlc 报告查看器未在 WPF 应用程序中显示报告