【发布时间】:2014-04-16 16:36:55
【问题描述】:
我在 R 中有一个数据集,其结构如下:
data <- structure(list(Cust_ID = c("003", "023", "023", "023", "023",
"041", "056", "056"), Record_Date = list(structure(16130, class = "Date"),
structure(c(16130, 16130, 16130, 16130), class = "Date"),
structure(c(16150, 16150, 16150, 16150), class = "Date"),
structure(c(16161, 16161, 16161, 16161), class = "Date"),
structure(c(16162, 16162, 16162, 16162), class = "Date"),
structure(16133, class = "Date"), structure(c(16088, 16088
), class = "Date"), structure(c(16095, 16095), class = "Date")),
Compare_Date = list(structure(16130, class = "Date"), structure(c(16130,
16150, 16161, 16162), class = "Date"), structure(c(16130,
16150, 16161, 16162), class = "Date"), structure(c(16130,
16150, 16161, 16162), class = "Date"), structure(c(16130,
16150, 16161, 16162), class = "Date"), structure(16133, class = "Date"),
structure(c(16088, 16095), class = "Date"), structure(c(16088,
16095), class = "Date"))), row.names = c(NA, -8L), class = "data.frame", .Names = c("Cust_ID",
"Record_Date", "Compare_Date"))
Cust_ID Record_Date Compare_Date
1 003 16130 16130
2 023 16130, 16130, 16130, 16130 16130, 16150, 16161, 16162
3 023 16150, 16150, 16150, 16150 16130, 16150, 16161, 16162
4 023 16161, 16161, 16161, 16161 16130, 16150, 16161, 16162
5 023 16162, 16162, 16162, 16162 16130, 16150, 16161, 16162
6 041 16133 16133
7 056 16088, 16088 16088, 16095
8 056 16095, 16095 16088, 16095
我想比较“Record_Date”的每个元素和“Compare_Date”的每个元素。我希望结果等于“Compare_Date”在“Record_Date”之后的 14 天内的次数。我知道如何比较两个向量,但比较两个列表似乎给我带来了麻烦。我尝试过使用 lapply 或 sapply,但它们一次只能循环遍历一个列表。
有没有人可以轻松解决这个问题?我希望预期的输出如下所示:
Within14
1: 0
2: 2
3: 1
4: 0
5: 1
6: 0
7: 0
8: 0
【问题讨论】:
-
预期结果会是什么样子?如何进行比较?