是否有一种方法可以通过R中的数学运算来合并两个数据帧?

问题描述 投票:1回答:1

我陷入了一个小R项目,需要一些帮助。

给出两个长度不同的数据框:

df1 = data.frame(Plane.Id = c(19924519, 19924321, 19992436, 19924119, 19924208, 19924330), 
                 Block.ID = c(090LC, 090LC, 001UG, 002LM, 001OI, 001UG), 
                 Hour1 = c(0.02222222, 0.02222222, 15.07222, 15.44444, 6.652778, 3.286111))

df2 = data.frame(Block.Id = c(090LC, 001UG, 001UG, 002LM, 001OI), 
                 Sector.ID = c(BIRDFIS, UKOVS, LLLLALL, EBBUEHS, LEBLDDN), 
                 Hour_In = c(0.000000, 0.000000, 13.000000, 0.000000, 0.000000), 
                 Hour_Out = c(23.50000, 13.000000, 23.50000, 23.50000, 23.50000))

根据一天中的小时将不同的Sector.ID分配给相同的Block.ID。

是否有可能在接下来的条件下将它们合并为单个数据框?:

  • 如果两个数据框中的Block.ID列值相同,则>]
  • 如果来自df1的Hour1值介于df2的Hour_In和Hour_Out之间(Hour_in <= Hour1 <= Hour_Out)
  • [我正在寻找的是一个长度为df1的数据帧,其中包含数据Plane.ID,Block.ID和Sector.ID。这样的事情(我不知道如何在这里建立表格,所以我用表格上传了图像):

df_final

enter image description here

我尝试了rbind,left_join,merge,cbind,但没有任何好处。我什至试图通过循环来做到这一点,但这不是一个好主意。

非常感谢您。

我陷入了一个小R项目,需要一些帮助。给定两个长度不同的数据帧:df1 = data.frame(Plane.Id = c(19924519,19924321,19992436,19924119,19924208,19924330),...

r dataframe merge conditional-statements
1个回答
0
投票

如何在[Block_id]上进行内部联接并使用dplyr通过“ Hour1”进行过滤?

© www.soinside.com 2019 - 2024. All rights reserved.