杀杀
学习数据库的时候经常使用连接操作,在我们处理数据时经常需要对两个数据中某个关键字段进行数据合并,这时候我们可以使用R来实现
merge(table_m,table_s,by = "name")
此时取出了两个矩阵中name字段相同的行进行了合并
如果第一个矩阵中所有的人,并把第二个矩阵中相同人的信息加入,需要用到left和right join
left_join(table_m,table_s,by = "name")
相反rightjoin则是保留第二个参数表格的所有人,当然你还是使用leftjoin,但是调换这两个参数的位置,也是一样的,只是有略微的不同,就是两个参数中,前面那个的矩阵也会保持在前面,即使你用的是rightjoin,保留了后一个矩阵的参数,但是前一个矩阵的信息还是先被拼接
还有就是保留两个矩阵的所有关键字段的人
full_join(table_m,table_s,by = "name")
当然还有求差集,也就是说两个表格中另一个表格没有的(第一个参数的表格特有的)
anti_join(table_m,table_s,by = "name")
当然有同学会说为什么不用intersect或者match或者which
关键字段有重复值,这时候如果使用match就会只返回第一个匹配的位置(处理数据的时候要小心这种情况,不要默认用match造成数据的丢失)
which就更麻烦了,要写循环一个一个去找,然后合并
网友评论