r - R - 根据另一个数据帧中的日期和其他值从一个数据帧中减去行
问题描述
我想根据数据框的 Month 列和 Park 列(也在下方)从 reports_example 数据框(见下文)中删除一些行AC_example
。我希望 reports_example 数据框的第一个月要么相同,要么在AC_example
数据框之后。
以下是所讨论的两个数据帧的子集:
reports_example <- read.table(header=TRUE, text="
Month Park
2019-12-01 Aspen_Heights
2020-02-01 Aspen_Heights
2020-05-01 Aspen_Heights
2021-06-01 Aspen_Heights
2019-11-01 Auburn_Bay
2020-03-01 Auburn_Bay
")
AC_example <- read.table(header=TRUE, text="
Month Park
2020-05-01 Aspen_Heights
2020-06-01 Aspen_Heights
2020-07-01 Aspen_Heights
2021-04-01 Aspen_Heights
2020-03-01 Auburn_Bay
2021-03-01 Auburn_Bay
")
我希望最终的报告数据框看起来像这样:
reports_final_example <- read.table(header=TRUE, text="
Month Park
2020-05-01 Aspen_Heights
2021-06-01 Aspen_Heights
2020-03-01 Auburn_Bay
")
任何帮助,将不胜感激!
解决方案
使用tidyverse
reports_example %>%
mutate(Month_example = as.Date(Month)) %>%
left_join(AC_example %>% mutate(Month_AC = as.Date(Month)), by = 'Park') %>%
filter(Month_example >= Month_AC) %>%
select(Park, Month_example, Month_AC) %>%
distinct(Park, Month_example)
结果是:
Park Month_example
1 Aspen_Heights 2020-05-01
2 Aspen_Heights 2021-06-01
3 Auburn_Bay 2020-03-01
推荐阅读
- c# - 我有多个文本框(tbVarName1,tbVarName2,... tbVarName[n]),我想在 for 循环中增加它们以将文本分配给某些东西
- python - 匹配两个特定列的 Numpy
- c - 无法使用 Windows minifilter 驱动程序读取文件
- javascript - 每个循环淡入淡出动画中的 jQuery 异步行为
- python - 我在尝试运行我的代码时收到此错误 project_detail() missing 1 required positional argument: 'project_slug'
- c++ - 递归合并排序算法实现
- r - 创建一个函数来执行计算并将答案作为列添加到现有数据框
- node.js - 覆盖 eslint-plugin-mocha 规则上的错误消息
- python - Python 包 cx_Oracle==5.1.3 需要 Microsoft Visual C++ 9.0
- android - 只有安全或非 null 断言的 kotlin 消息