从R中的2个数据帧匹配和调用数据

时间:2014-03-15 16:13:18

标签: r dataframe

我有两个数据框,A和B. 首先,我想将B中的两列(id和type)与A匹配 如果它们具有相同的元素,那么我想将A中的所有其他信息调用到新的数据帧C中。

例如

A

id  type  info1  info2  info3  info4   
a   t1    *      ~       ~      ~       
b   t5    *      ~       ~      ~       
c   t3    *      ~       ~      ~       
a   t2    *      ~       ~      ~       
b   t3    *      ~       ~      ~

id   %    type  
a    .2   t1  
b    .15  t2  
c    .1   t3  

a和c在A和B中具有相同的类型 所以我想创建一个新的数据框C,其中包含a和c在A中的所有其他列,

id type  info1  info2  info3  info4  
A  t1     *       ~      ~      ~  
C  t3     *       ~      ~      ~    

我试过了     C =合并(A,C,by = c(“type”,“id”))

但我认为它显示了A和B中的所有类型和ID。

1 个答案:

答案 0 :(得分:0)

看起来你想从A中只提取那些id和类型在B中匹配的行。你可以使用merge来实现:

C <- merge(A,B[,c("id","type")])
C
#   id type info1 info2 info3 info4
# 1  a   t1     *     ~     ~     ~
# 2  c   t3     *     ~     ~     ~

您不需要by=...,因为第二个参数中的唯一列是idtype,默认情况下合并适用于所有公共列。