r语言 - max(DF1$EFFDT) <= DF2$EFFDT



我有两个数据框,DF1包含数据的月度数据快照,而DF2具有特定日期,我希望能够仅从DF1 wrt DF2数据中检索最接近的maxdate (<=)的数据。

DF1

<表类> 账户 日期 tbody><<tr>A10000011 - 1月- 2021A10000021 - 2月- 2021A10000031 - 3月- 2021A10000041 - 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")

相关内容

  • 没有找到相关文章

最新更新