gpt4 book ai didi

r - 如何从两个数据框中按最近的日期进行匹配?

转载 作者:行者123 更新时间:2023-12-04 01:34:53 25 4
gpt4 key购买 nike

假设我有两个数据框,例如:

set.seed(123)
df1<-data.frame(bmi=rnorm(20, 25, 5),
date1=sample(seq.Date(as.Date("2014-01-01"),
as.Date("2014-02-28"),by="day"), 20))

df2<-data.frame(epi=1:5,
date2=as.Date(c("2014-1-8", "2014-1-15", "2014-1-28",
"2014-2-05", "2014-2-24")))

我的问题是如何匹配 bmiepi其中 date1 在 date2 之前或之上最近?像这样的结果:
  epi      date2   bmi      date1
1 1 2014-01-08 33.58 2014-01-08
2 2 2014-01-15 22.64 2014-01-15
3 3 2014-01-28 22.22 2014-01-26
4 4 2014-02-05 15.17 2014-02-01
5 5 2014-02-24 27.49 2014-02-15

最佳答案

这里有一个基 R 的方法

# get time differences
temp <- outer(df2$date2, df1$date1, "-")

# remove where date1 are after date2
temp[temp < 0] <- NA

# find index of minimum
ind <- apply(temp, 1, function(i) which.min(i))

# output
df2 <- cbind(df2, df1[ind,])

关于r - 如何从两个数据框中按最近的日期进行匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23342647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com