如何在R

时间:2018-07-30 14:38:07

标签: r dataframe merge intersect

我想在一个包含两个列的新数据框中合并两个数据框,此外,我只需要将具有相同id的行放入新数据框中。

我的数据帧如下:

df1
Name       V1  V2   V3
str1       .   .    strA    
str2       .   .    strB
..         .   . 
str16000   .   .    strC


df2
Name       V1  V2   V3
str2       .   .    strD    
str1       .   .    strE
..         .   . 
str20000   .   .    strF

我想要一个输出,例如:

Name     df1$v3    df2$v3
str1     strA      strE
str2     strB      strD

请注意,df1和df2的长度不同,而且df1和df2中的相同项目的位置不同。

谢谢你们

1 个答案:

答案 0 :(得分:0)

使用合并功能

lines=
   'Name      V1  V2   V3
    str1      NA  NA   strA    
    str2      NA  NA   strB
    str16000  NA  NA   strC'

df1 = read.table(textConnection(lines), header = T)

lines=
   'Name      V1  V2   V3
    str1      NA  NA   strD    
    str2      NA  NA   strE
    str16000  NA  NA   strF'

df2 = read.table(textConnection(lines), header = T)


dfnew = merge(df1[1:2, -2:-3], df2[1:2, -2:-3], by='Name')

colnames(dfnew) = c('Name', 'df1$v3 ', 'df2$v3')

dfnew 

#  Name df1$v3  df2$v3
#1 str1    strA   strD
#2 str2    strB   strE