R数据分析之merge函数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
R数据分析之merge函数
两个数据框类型的数据对象在进行整合的时候经常会用到merge 函数,但是老是忘记all= TRUE, all= FALSE, all.x= TRUE, all.y= TRUE 的区别,下面抄个简单的例子来加深下印象。
创建示例数据集
使用默认参数进行整合
执行merge函数时,函数自动会找到两个数据框df1和df2共有的列,即id那一列(即相当于by= "id"),当参数all= FALSE时,会将两个数据框中该列数值相等的那些行输出来,类似于对这两个数据框的id这一列求交集(intersection)。
此例中是id为2或7这两行。
此外,还可以发现df1和df2的输入顺序不会影响最终结果,仅仅会影响输出结果中heights和weights这两列的顺序。
调整all参数
当参数all= TRUE时,会将id这一列的所有数值都列出来,但要去除重复的数值(即id为1和2的那两行),这类似于对两个数据框的这一列求补集(union)
调整all.x和all.y参数
查看merge函数的帮助文档,会发现还有all.x, all.y这两个参数,默认情况下,all.x= all, all.y= all,因此根据自己的情况还可以单独来调整这两参数的值。
上面的命令中设置了all.x= TRUE,此外还有默认的all.y=all=FALSE,输出结果中id那一列就是df1中的id那一列,并且多了weights列,并且如果df2中id列中没有与df1中的id列中相等的数值,则输出结果中与之相对应的weights列的数值为NA。
同样设置了all.y= TRUE的话,会看到输出结果中对应的heights 列中的数值为NA。
by参数的使用
上面的示例中by参数只有一个值,如果有两个数值(即长度为2的向量),也就是两个数据框中有共同的两列。
为两个数据框分别添加一列后,这样它们就有了共同的两列。
当运行merge函数后发现,函数会自动找到共同的列,然后找到id和sex这两列中共有的数值。
此外,如果只设定by= "id"的话,则两数据框中共有的sex那一列则会以sex.x和sex.y形式输出。
参考链接:。