r - 如何完全加入具有正确数据类型的 2 个数据帧?
问题描述
head(a)
ID yr mth
1 1 2021 M04
2 2 2021 M04
3 3 2021 M04
4 4 2021 M04
5 5 2021 M04
6 6 2021 M04
head(b)
yr mth period_start period_end
1 2015 M03 2015-03-01 2015-03-31
2 2015 M03 2015-03-01 2015-03-31
3 2015 M04 2015-04-01 2015-04-30
4 2015 M04 2015-04-01 2015-04-30
5 2015 M05 2015-05-01 2015-05-30
6 2015 M05 2015-05-01 2015-05-30
我希望结果如下所示,完全连接 b,并且在“1900-01-01”中缺少 2 个日期字段中的一些记录/
ID yr mth period_start period_end
1 1 2019 M04 2015-03-01 2015-03-31
2 2 2018 M01 2015-03-01 2015-03-31
3 3 2021 M01 2015-04-01 2015-04-30
4 4 2015 M04 ???? ????
5 5 2021 M03 2015-04-01 2015-04-30
6 6 2021 M04 2015-04-01 2015-04-30
请告知如何制作。谢谢
解决方案
由于声誉问题,我无法就澄清问题发表评论。但是,我会dplyr
在 r 中使用,我们有一个“传统的”左连接。这将保留第一个数据帧 (a) 中的所有行,并为 (b) 中没有匹配的两个新列生成缺失。只有您要合并的列的类需要相同,其余的可以稍后转换。如果以下产生错误,您可以分享它,我们可以从那里开始。
library(dplyr)
df <- left_join(a, b, by = c("yr", "mth"))
如果您想处理日期,我推荐使用lubridate
r 中的包,这使得转换日期和日期变得非常容易。
推荐阅读
- log4j - 使用 logback RollingFileAppender 时旧的日志文件没有被删除
- c# - 不同枚举值的不同实现
- azure - Visual Studio 2017 中缺少持久功能编排
- java - 在java中查找字谜
- c++ - 取消引用指针以制作数组的副本
- c++ - 从 char 数组打印特定字符
- reactjs - 具有许多不同 URL 变体的 React Router
- ios - iOS 崩溃:在键盘上点击地球以转到表情符号键盘会导致崩溃
- java - IntelliJ IDEA 可以显示所有违反 Nullable 注释的列表吗
- ios - GIF 图像作为 iOS 版 Google 地图中的标记(Swift)