我有两个数据框,DF1包含数据的月度数据快照,而DF2具有特定日期,我希望能够仅从DF1 wrt DF2数据中检索最接近的maxdate (<=)的数据。
DF1
<表类>
账户
日期
tbody><<tr>A1000001 1 - 1月- 2021 A1000002 1 - 2月- 2021 A1000003 1 - 3月- 2021 A1000004 1 - 4月- 2021 表类>
将日期更改为实际日期类,使用sapply
,您可能会发现df1
中的每个日期与df2
中的日期最接近。
df1$Date <- as.Date(df1$Date, '%d-%b-%Y')
df2$Date <- as.Date(df2$Date, '%d-%b-%Y')
result <- df1[sapply(df2$Date, function(x) which.min(abs(df1$Date - x))), ]
result
# Account Date
#3 A1000003 2021-03-01
如果您以可重复的格式提供数据,则更容易提供帮助
df1 <- structure(list(Account = c("A1000001", "A1000002", "A1000003",
"A1000004"), Date = c("1-JAN-2021", "1-FEB-2021", "1-MAR-2021",
"1-APR-2021")), row.names = c(NA, -4L), class = "data.frame")
df2 <- structure(list(Date = "15-MAR-2021"), row.names = c(NA, -1L),
class = "data.frame")