R基于非相等条件的合并

R基于非相等条件的合并,r,merge,dataframe,R,Merge,Dataframe,我有一个数据框,看起来像: date minutes_since_midnight value 2015-01-01 50 2 2015-01-01 60 1.5 2015-01-02 45 3.3 2015-01-03 99 5.5 另一个数据帧看起来像

我有一个数据框,看起来像:

date            minutes_since_midnight   value
2015-01-01      50                       2
2015-01-01      60                       1.5
2015-01-02      45                       3.3
2015-01-03      99                       5.5
另一个数据帧看起来像这样

date        minutes_since_midnight   other_value
2015-01-01  55                       12
2015-01-01  80                       33
2015-01-02  45                       88
我要做的是在第一个数据帧中添加另一列,这是布尔值无论第二个数据帧中是否存在一行,该行在日期列中的值相等,然后是一个自午夜起的分钟数,该值小于或等于自第一个数据帧起的自午夜起的分钟数。因此,对于上述示例数据,我们将得到:

date        minutes_since_midnight    value  has_other_value
2015-01-01  50                        2      False
2015-01-01  60                        1.5    True
2015-01-02  45                        3.3    True
2015-01-03  99                        5.5    False
我该怎么做

希望这有意义


提前感谢

您能否将变量从午夜起的分钟重命名为从午夜起的分钟1和从午夜起的分钟2,将两个数据帧合并在一起,然后使用if-else语句创建所需的has\u other\u值变量

我可能会沿着另一个答案的行连接data.frames,然后创建变量并删除不需要的列。但这里有一个选项,使用
dplyr
包执行您描述的步骤:

library(dplyr)
df1$has_other_value <-
  left_join(df1, df2 %>%
              group_by(date) %>%
              summarise(minMins = min(minutes_since_midnight)),
            by="date")$minMins <= df1$minutes_since_midnight

df1$has_other_value[is.na(df1$has_other_value)] <- FALSE

是的,你说得对,那会有用的,我会试试的,谢谢!我所希望的是像merge这样的东西,它已经具备了条件,为我做了工作。。但我可以按照你的建议编写自己的函数。Cheers如果两个数据帧中都有重复的日期值,则在合并之前需要对第二个数据帧进行聚合,以便将每个日期压缩为一行,其中包含自午夜以来该日期的最小
分钟数值。谢谢-这正是我想要的,我将深入研究dplyr包,以便更熟悉这些函数。
        date minutes_since_midnight value has_other_value
1 2015-01-01                     50   2.0           FALSE
2 2015-01-01                     60   1.5            TRUE
3 2015-01-02                     45   3.3            TRUE
4 2015-01-03                     99   5.5           FALSE