我有两个数据框,logger和df(次数是数字):
logger <- data.frame(
time = c(1280248354:1280248413),
temp = runif(60,min=18,max=24.5)
)
df <- data.frame(
obs = c(1:10),
time = runif(10,min=1280248354,max=1280248413),
temp = NA
)
Run Code Online (Sandbox Code Playgroud)
我想在logf $ time中搜索与df $ time中每行最接近的匹配,并将相关的logger $ temp分配给df $ temp.到目前为止,我已成功使用以下循环:
for (i in 1:length(df$time)){
closestto<-which.min(abs((logger$time) - (df$time[i])))
df$temp[i]<-logger$temp[closestto]
}
Run Code Online (Sandbox Code Playgroud)
但是,我现在有大数据帧(记录器有13,620行,df有266138),处理时间很长.我已经读过循环不是最有效的方法,但我不熟悉替代方案.有更快的方法吗?