使用R中merge()函数合并数据[通俗易懂]

使用R中merge()函数合并数据[通俗易懂]使用R中merge()函数合并数据在R中可以使用merge()函数去合并数据框,其强大之处在于在两个不同的数据框中标识共同的列或行。如何使用merge()获取数据集中交叉部分merge()最简单的形式为获取两个不同数据框中交叉部分。举例,获取cold.states和large.states完全匹配的数据。代码如下:>merge(cold.states,large….

大家好,又见面了,我是你们的朋友全栈君。

使用R中merge()函数合并数据

在R中可以使用merge()函数去合并数据框,其强大之处在于在两个不同的数据框中标识共同的列或行。

如何使用merge()获取数据集中交叉部分

merge()最简单的形式为获取两个不同数据框中交叉部分。举例,获取cold.states和large.states完全匹配的数据。代码如下:

> merge(cold.states, large.states)
   Name Frost  Area
1  Alaska  152 566432
2 Colorado  166 103766
3 Montana  155 145587
4  Nevada  188 109889

如果你属性数据库语法SQL,你可能想merge()和数据库中JOIN功能很相似。确实如此,merge()函数的不同参数可以实现内join,left join,right join以及完整join。

merge()函数有很多参数,看起来非常吓人。但他们都几中类型参数有关:

  • x: 第一个数据框.

  • y: 第二个数据框.

  • by, by.x, by.y: 指定两个数据框中匹配列名称。缺省使用两个数据框中相同列名称。

  • all, all.x, all.y: 指定合并类型的逻辑值。缺省为false,all=FALSE (仅返回匹配的行).

最后一组参数all, all.x, all.y需要进一步解释,决定合并类型。

这里写图片描述

如何理解不同类型的合并

merge() 函数支持4种类型数据合并:

Natural join: 仅返回两数据框中匹配的数据框行,参数为:all=FALSE.

Full outer join: 返回两数据框中所有行, 参数为: all=TRUE.

Left outer join: 返回x数据框中所有行以及和y数据框中匹配的行,参数为: all.x=TRUE.

Right outer join: 返回y数据框中所有行以及和x数据框匹配的行,参数为: all.y=TRUE.

如何实现完整合并(full outer join)

返回示例数据中美国的州,执行完整合并cold和large state,使用参数all=TRUE.

> merge(cold.states, large.states, all=TRUE)
      Name Frost  Area
1     Alaska  152 566432
2    Arizona  NA 113417
3   California  NA 156361
....
13     Texas  NA 262134
14    Vermont  168   NA
15    Wyoming  173   NA

两个数据框有不同的名称,所以R基于两者state的name进行匹配。Frost来自cold.states数据框,Area来自large.states.

上面代码执行了完整合并,填充未匹配列值为NA。

总结

本文详细介绍R中merge()函数参数及合并数据类型。利用sql的表连接概念进行类比,简单易懂。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/130379.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python面试必备的7大问题

    本文给大家总结了Python面试必备的7大问题。例如:交换变量值、is 和 == 的区别、可变对象和不可变对象、连接字符串用join还是+、__new__和__init__的区别,等等。

    2022年1月18日
    93
  • leetcode 通配符匹配_匹配任意一个字符的通配符是

    leetcode 通配符匹配_匹配任意一个字符的通配符是给定一个字符串 (s) 和一个字符模式 § ,实现一个支持 ‘?’ 和 ‘*’ 的通配符匹配。‘?’ 可以匹配任何单个字符。‘*’ 可以匹配任意字符串(包括空字符串)。两个字符串完全匹配才算匹配成功。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 ? 和 *。示例 1:输入:s = “aa”p = “a”输出: false解释: “a” 无法匹配 “aa” 整个字符串。示例 2:输入:s = “aa”p = “*

    2022年8月9日
    5
  • Android应用开发入门教程(经典版)

    Android应用开发入门教程(经典版)第一篇 Android 系统结构和 SDK 使用第 1 章 Android 的系统介绍第 2 章 AndroidSDK 的开发环境第二篇 Android 应用程序的概述和框架第 3 章 Android 应用层程序的开发方式第 4 章 Android 应用程序示例第 5 章 Android 应用程序的内容第三篇 Android 的 UI 系统实现第 6 章 UI 的基本外形和控制第 7 章控件 Widget 的使用第 8 章视图组 ViewGroup 和布局 Layout 的使用第 9 章 2D 图形接口的使用第 10 章 OpenGL3D 图形的使用

    2025年10月22日
    2
  • memorycleaner汉化版(v4l2 userptr)

    本文链接:https://blog.csdn.net/coroutines/article/details/70141086可参考:http://www.it610.com/article/4522348.htm//v4l2官方翻译基于V4L2的应用,通常面临着大块数据的读取与拷贝等问题。尤其在嵌入式系统中,对于实时性能要求较高的应用,拷贝会花上几十个ms…

    2022年4月16日
    133
  • PC傻瓜式安装黑苹果并打造成全能逆向工作站–更新至2021.12.20

    PC傻瓜式安装黑苹果并打造成全能逆向工作站–更新至2021.12.20安装黑苹果有多简单原版Windows镜像安装大家都会,当然Ghost安装除外喔,太“乡村范儿”了。Windows操作系统的安装,无非下列四个步骤。准备镜像→写镜像到U盘→从U盘安装系统→系统自定义配置现在我们安装黑苹果也是同样的流程。先说一下本机的配置:2014年1999元买的宁美国度的组装台式机*CPU:i34160*GPU:HD4400CPU自带*RAM:4…

    2022年6月11日
    39
  • 计算机用户名起什么好,如何随机取名计算机名-如何改计算机用户名

    计算机用户名起什么好,如何随机取名计算机名-如何改计算机用户名如何改计算机用户名(administrator)3、右边找到“账户:重命名系统管理员账户”,鼠标右键,选择“性”。打开电脑,进入桌面。右击我的电脑,打开管理设置;打开系统工具,进入计算机管理页面,选择“本地用户和组”;在“全名”处输入想要的计算机用户名(可写描述)“我的电脑”,右键“管理”,这时会打开一个窗口”计算机管理“。双击”本地用户和组“,再”用户“,右面窗口中会看到”administrat…

    2022年10月14日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号