如何解决在第二个数据框的基础上查找一个数据框的最新行
我有两个数据帧,dfburg
和dfpolice
。对于dfburg
(入室盗窃列表)中的每一行,我想知道dfpolice
(警察活动列表)中的哪一行是最近的,以及此后发生的那一行。>
最终目的是查看每个入室盗窃事件在附近人员附近巡逻的情况,并在入室盗窃之后留守并巡逻更多。
因此,如果dfburg
事件在上午9点8/22发生,我想从dfpolice
中提取 两 行,这是最接近的行之前和之后的8月22日上午9点。
谢谢。我两个表都有日期时间变量。
所以对于dfburg
中的每一行,将有dfpolice
的两行,前后最接近的一行,将有重复项。
解决方法
我认为一种简单的方法是将表与dplyr::bind_rows()
之类的东西组合在一起,然后创建一个before和after列来复制Police_id并从那里填充或填充。这将需要在每个表中都有一个匹配的datetime列,但这很容易。
# I took some liberties with column names,as I didn't see the tables before writing
dfpolice %>%
dplyr::bind_rows(dfburg) %>%
dplyr::arrange(dt) %>%
dplyr::select(burg_id,dt,police_id_before = police_id,police_id_after = police_id) %>%
tidyr::fill(police_id_before,.direction = 'down') %>%
tidyr::fill(police_id_after,.direction = 'up') %>%
dplyr::filter(complete.cases(.))
从那里,您可以仅参考dfpolice
和dfburg
表以获取所需的任何信息,因为结果表是入室ID,入室日期和呼叫的警察ID。紧接在此之前和之后。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。