基于R中的多个列合并两个数据帧

问题描述 投票:0回答:2

我有两个看起来像这样的数据框

数据框1:

P.X    value
OOPA     5
POKA    4
JKIO    3
KOPP    1 

数据框2:

P.X.1   P.X.2  P.X.3 P.X.4    mass
         OOPA                  56
                     POKA      44
               JKIO            13
KOPP                           11 

并且我想基于df1 P.X和df2 P.X.1,P.X.2,P.X.3,P.X.4合并两个数据文件

让我有

新数据框:

P.X    value  mass
OOPA    5      56
POKA    4      44
JKIO    3      13
KOPP    1      11 

[你知道我怎么可能用

merge(df1,df2 by(P.X == P.X.1 | P.X.2 | P.X.3 | P.X.4)

r merge dplyr frame
2个回答
0
投票

您也可以这样做:

 df_new <- cbind(df1, df2[,5])

0
投票

以下是实现目标的一种方法。

left_join(df1,
          pivot_longer(df2, cols = P.X.1:P.X.4, names_to = "foo",
                       values_to = "P.X") %>% filter(nchar(P.X) > 0),
          by = "P.X") %>% 
select(-foo)

   P.X value mass
1 OOPA     5   56
2 POKA     4   44
3 JKIO     3   13
4 KOPP     1   11
© www.soinside.com 2019 - 2024. All rights reserved.