如何合并匹配的数据并在R中仍然显示未匹配的数据

如何合并匹配的数据并在R中仍然显示未匹配的数据,r,dataframe,join,dplyr,merge,R,Dataframe,Join,Dplyr,Merge,我试图合并两个数据帧,但并非所有记录都有主键 DF1是: EmpID SNcode Name A1 123 Bill B2 456 Alice Carrie DF1 DF2是: EmpID Sncode Name Department A1 123 Bill Accounts B2 456 Alice CustService 986 Pe

我试图合并两个数据帧,但并非所有记录都有主键

DF1是:

EmpID   SNcode  Name
A1      123     Bill
B2      456     Alice
                Carrie
DF1

DF2是:

EmpID   Sncode  Name    Department
A1      123     Bill    Accounts
B2      456     Alice   CustService
        986     Peter   
DF2

我希望结果是这样的:

EmpID   SNcode  Name    Department
A1      123     Bill    Accounts
B2      456     Alice   CustService
                Carrie  
        986     Peter   
结果

我下面的代码不起作用:

mydata <- merge(DF1, DF2, by="EmpID",all.y=TRUE)

mydata这些是重要的基本代码函数,学习和理解这些函数对于R中的编码非常重要。这里使用了三种不同的函数,可以让代码以您想要的方式准确输出

首先,要知道表的命名顺序与显示的顺序相同。它们在这里被命名为t1、t2和t3。t3为所需输出。这些表t1和t2不会改变,而是保持不变

有四种类型的联接。您可以阅读这些连接类型,然后尝试使用它们进行练习。这里我使用了
full\u join()
函数。这将通过两个对象(t2和t1)的列名连接它们的值。所有值都连接在一起,不会删除或留下任何内容。表t1和t2在此联接之后保持不变

然后使用函数
na.omit()
从连接的数据中删除na。如果在运行
NA.omit()
函数之前打印t3,则可以看到这些NA

然后使用函数,
rownames()
从连接的数据中删除行号。t3中的数据现在已清理完毕,并与所需的输出格式相匹配

代码和输出如下所示:

t3 <- full_join(t2, t1)   # join 
t3 <- na.omit(t3)           # remove the NA's
rownames(t3) = NULL       # remove the column row numbers
t3                         # print the output
t3
mydata这里是代码:库(dplyr)DF1=read.csv('not_sep.csv',header=TRUE,stringsAsFactors=FALSE)DF2=read.csv('pcr_sep.csv',header=TRUE,stringsAsFactors=FALSE)mydata