Это можно сделать, используя левое соединение, используя указанное логическое выражение:
library(sqldf)
sqldf("select b.Variable, min(a.timestamp) as timestamp
from tab2 b
left join tab1 a on a.Variable = b.Variable and a.timestamp > b.timestamp
group by b.Variable")
, дающее:
Variable timestamp
1 s1 1053181616
2 s2 1054132016
Примечание
Lines1 <- "Variable timestamp
s1 1053093896
s2 1053095216
s1 1053181616
s1 1053959216
s2 1054132016"
tab1 <- read.table(text = Lines1, header = TRUE, strip.white = TRUE)
Lines2 <- "Variable timestamp
s1 1053129600
s2 1053820800"
tab2 <- read.table(text = Lines2, header = TRUE, strip.white = TRUE)