r - 一个接一个地合并两个时间数据帧
问题描述
我想要做的是将两个数据框与数据对不同变量的观察合并。
第一个数据框包含 2019 年 1 月至 2020 年 1 月期间的观察结果 第二个数据框包含 2020 年 1 月至 2020 年 12 月期间的观察结果。即,2020 年 1 月的观察结果出现在两个数据框中。在下面的示例中,最后一个观察值中dataframe 1
的两个与 中的两个第一个观察值相同dataframe 2
。
dataframe 1
Date V1 V2
2019-01-01 x y
2019-01-03 x z
2020-01-01 x y
2020-01-02 v x
dataframe 2
Date V1 V2
2020-01-01 x y
2020-01-02 v x
2020-01-03 v x
2020-01-04 n j
2020-01-06 b h
在这两个数据框中,我想创建一个从 2019 年 1 月到 2020 年 12 月的数据框。即,dataframe 1
从dataframe 2
.
但是,目标是以某种方式合并两个数据帧,如果有任何相同的观察结果,那么这两个数据帧中只有一个观察结果将保留在新的数据帧中。而如果只有一个原始数据帧中存在观察结果,它将保留在新数据帧中。换句话说,我想避免重复但保留独特的观察结果。我认为它被称为完全加入。新的应该是这样的
NewDataFRAME
2019-01-01 x y
2019-01-03 x z
2020-01-01 x y
2020-01-02 v x
2020-01-03 v x
2020-01-04 n j
2020-01-06 b h
两个原始数据框中的观察结果在新数据框中仅出现一次。
如果您想随意解释,我不熟悉正确的术语。
解决方案
我们可以使用rbind
将数据集绑定在一起并应用unique
在它上面
unique(rbind(df1, df2))
# Date V1 V2
#1 2019-01-01 x y
#2 2019-01-03 x z
#3 2020-01-01 x y
#4 2020-01-02 v x
#7 2020-01-03 v x
#8 2020-01-04 n j
#9 2020-01-06 b h
数据
df1 <- structure(list(Date = c("2019-01-01", "2019-01-03", "2020-01-01",
"2020-01-02"), V1 = c("x", "x", "x", "v"), V2 = c("y", "z", "y",
"x")), class = "data.frame", row.names = c(NA, -4L))
df2 <- structure(list(Date = c("2020-01-01", "2020-01-02", "2020-01-03",
"2020-01-04", "2020-01-06"), V1 = c("x", "v", "v", "n", "b"),
V2 = c("y", "x", "x", "j", "h")), class = "data.frame", row.names = c(NA,
-5L))
推荐阅读
- docker - 连接到redis docker容器时出错
- node.js - 如何在 typegoose 中使用更新的钩子?
- sql - 如何使用“SELECT FOR UPDATE”锁定一组行
- arrays - 在 JavaScript 中使用数组时确定效率(大 O 表示法)
- sql-server - 如何区分 SQL Server 中的 2 个阿拉伯字母
- python - 编写一个程序,首先读取输入文件的名称,然后是两个字符串,表示搜索范围的下限和上限
- java - 设置 iText 文档的 BackgroundColor
- javascript - 在本机反应中显示来自firebase的图像(命中错误)
- video - ffmpeg 缩放 4k 视频并添加字幕
- c - 从 crtdefs.h 获取错误