合并多个动态和静态变量R.

时间:2018-04-02 19:17:18

标签: r merge left-join

我正在尝试合并/加入R中的数据并遇到问题。

我需要从每个数据集中指定多个变量,然后从数据集2中指定一个具有静态值的变量。

这样的东西
DF1 <- data.frame(ID=c('1','2','3','4'),
            Date=c('1 Apr','1 Apr','1 Apr','1 Apr'),
            Sale=c('1000','1000','1000','1000'))
DF2 <- data.frame(ID=c('1','1','2','3','4'),
            Date=c('1 Apr','1 Apr','1 Apr','1 Apr','1 Apr'),
            Sale=c('1000','1000','1000','1000','1000'),
            Key=c('P','S','P','P','P'))


        DF1
ID  |  Date  |  Sale  | 
-----------------------
1     1 Apr    1000
2     1 Apr    1000
3     1 Apr    1000
4     1 Apr    1000

        DF2
ID  |  Date  |  Sale  |  Key  |
-------------------------------
1     1 Apr    1000       P
1     1 Apr    1000       S
2     1 Apr    1000       P
3     1 Apr    1000       P
4     1 Apr    1000       P

我需要加入DF1和DF2中具有相同名称的三个变量,以及来自DF2的Key == P.我熟悉merge和left_join的语法,但如果我尝试指定DF2中的键变量需要==静态值,而不是必须匹配来自DF1的东西,我就无法使它们工作。

类似的东西:

DF3 <- left_join(DF1, DF2, c("ID1.x" = "ID.y", 
"Date.x" = "Date.y", "Sale.x" = "Sale.y", DF2$Key == "P"), 
na.matches = "never")

我意识到这不会奏效,但希望它可以让我知道自己想做什么。一个变量是静态的,在DF2中充当过滤器。

如果有人问,不,我不能简单地删除Key!= P.

所有的行

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

cy.click('#someButtonToNavigateOnNewPage'); cy.location('pathname', {timeout: 60000}) .should('include', '/newPage'); cy.click('#YouAreOnNewPage'); 。您不必删除行,只需在合并期间删除子集。只需过滤而不是通过静态值合并。