【发布时间】:2015-01-24 20:07:57
【问题描述】:
我想合并两个带有 ID 的数据集。 Data2 是较大数据集 (data1) 的子集,它是通过删除在 data1 中标记为 1 的 Id 创建的。在示例数据中,两个数据集在 ID 426 之前具有相同的 ID。对于 ID 427,当第一个数据中的标签为 1 时,第二个数据删除该条目并继续使用顺序 ID。因此,第二个数据中的 Id 427 是第一个数据中的 428。同样,第二个数据中的 ID 1865 是第一个数据中的 1867。我如何合并这些数据集?我已经在线提供了一个样本数据。第一个数据有变量 id、date 和 tag,而第二个数据有 id1 和 date1
> dput(data1)
structure(list(id = c(426L, 427L, 428L, 429L, 430L, 431L, 432L,
1865L, 1866L, 1867L, 1868L, 1869L, 1870L, 1871L, 2388L, 2389L,
2390L, 2391L, 2965L, 2966L, 2967L, 2968L, 2969L, 2970L), date = structure(c(11250,
7308, 12436, 9919, 13372, 9526, 8232, 7306, 9872, 7398, 10332,
12967, 14288, 14053, 7311, 10268, 7772, 14477, 7309, 10228, 8917,
10216, 10873, 8065), class = "Date"), tag = c(0L, 1L, 0L, 0L,
0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 1L, 0L,
0L, 0L, 0L, 0L)), datalabel = "", time.stamp = "24 Jan 2015 22:01", .Names = c("id",
"date", "tag"), formats = c("%8.0g", "%tdDD_mon_CCYY", "%8.0g"
), types = c(252L, 254L, 251L), val.labels = c("", "", ""), var.labels = c("",
"", ""), row.names = c("1", "2", "3", "4", "5", "6", "7", "8",
"9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19",
"20", "21", "22", "23", "24"), version = 12L, class = "data.frame")
>
> dput(data2)
structure(list(id1 = c(426L, 427L, 428L, 429L, 430L, 431L, 432L,
1865L, 1866L, 1867L, 1868L, 1869L, 1870L, 1871L, 2388L, 2389L,
2390L, 2391L, 2965L, 2966L, 2967L, 2968L, 2969L, 2970L), date1 = structure(c(11250,
12436, 9919, 13372, 9526, 8232, 13787, 7398, 10332, 12967, 14288,
14053, 11620, 11426, 14477, 11464, 9029, 11875, 10873, 8065,
11233, 13848, 10204, 9535), class = "Date")), datalabel = "", time.stamp = "24 Jan 2015 22:00", .Names = c("id1",
"date1"), formats = c("%8.0g", "%tdDD_mon_CCYY"), types = c(252L,
254L), val.labels = c("", ""), var.labels = c("", ""), row.names = c("1",
"2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13",
"14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24"
), version = 12L, class = "data.frame")
【问题讨论】:
-
欢迎来到 Stackoverflow。您的链接会产生错误:
Sorry, the file you have requested does not exist.您可能还想看看您是否可以重新编写您的问题以更清楚一点,给出特定的列名并显示数据的 sn-ps 等。 -
可能是一个新的缩减ID作为更大数据集中的匹配变量,计算为
ID - cumsum(tag==1)....实际代码需要一个示例。 -
@Madiba 感谢您对帖子的编辑,我会看看它。另一件非常有帮助的事情是让您向我们展示结果应该是什么样子。您只是想要一个包含所有记录的结果数据框吗?
-
@Hack-R,是的,我想要一个包含所有记录的数据集。
-
@Madiba 太好了。我想我有适合你的解决方案。请看下面。