1. library(dplyr)
  2. unite(mtcars, "vs_am", vs, am)

Merging Data

Adding Columns

To merge two data frames (datasets) horizontally,  use the merge function. In most cases, you join two data frames  by one or more common key variables (i.e., an inner join).

# merge two data frames by ID  

total <- merge(data frameA,data frameB,by="ID") #by指定的列中的值必须是唯一的,不能重复出现两行有相同的ID

# merge two data frames by ID and Country  

total <- merge(data frameA,data frameB,by=c("ID","Country")) #by指定的列中的值必须是唯一的,不能重复出现两行有相同的ID

Inner join: merge(df1, df2) will work for these examples because R automatically joins the frames by common variable names, but you would most likely want to specify merge(df1, df2, by="CustomerId") to make sure that you were matching on only the fields you desired.  You can also use the by.x and by.y parameters if the matching variables have different names in the different data frames.

Outer join: merge(x = df1, y = df2, by = "CustomerId", all = TRUE) #by指定的列中的值必须是唯一的,不能重复出现两行有相同的ID

Left outer: merge(x = df1, y = df2, by = "CustomerId", all.x=TRUE) #by指定的列中的值必须是唯一的,不能重复出现两行有相同的ID

Right outer: merge(x = df1, y = df2, by = "CustomerId", all.y=TRUE) #by指定的列中的值必须是唯一的,不能重复出现两行有相同的ID

Cross join: merge(x = df1, y = df2, by = NULL) #by指定的列中的值必须是唯一的,不能重复出现两行有相同的ID

#########################

> df2 = data.frame(CustomerId=c(2,4,6),State=c(rep("Alabama",2),rep("Ohio",1)))

> df1

CustomerId Product

1          1 Toaster

2          2 Toaster

3          3 Toaster

4          4   Radio

5          5   Radio

6          6   Radio

> df2

CustomerId   State

1          2 Alabama

2          4 Alabama

3          6    Ohio

> merge(df1, df2, all=TRUE)

CustomerId Product   State

1          1 Toaster    <NA>

2          2 Toaster Alabama

3          3 Toaster    <NA>

4          4   Radio Alabama

5          5   Radio    <NA>

6          6   Radio    Ohio

> merge(df1, df2, all.x=TRUE)

CustomerId Product   State

1          1 Toaster    <NA>

2          2 Toaster Alabama

3          3 Toaster    <NA>

4          4   Radio Alabama

5          5   Radio    <NA>

6          6   Radio    Ohio

> merge(df1, df2, all.y=TRUE)

CustomerId Product   State

1          2 Toaster Alabama

2          4   Radio Alabama

3          6   Radio    Ohio

#####################################

REF:

http://stat.ethz.ch/R-manual/R-devel/library/base/html/merge.html

http://www.statmethods.net/management/merging.html

http://stackoverflow.com/questions/1299871/how-to-join-data-frames-in-r-inner-outer-left-right

http://blog.sciencenet.cn/blog-508298-652589.html

 
分类: [31]R

r里面如何实现两列数据合并为一列的更多相关文章

  1. Kettle 行列互换之——行转列(多列数据合并成一列变为多行)

    原始需求如下: 业务系统设置成这样,见截图. 工资项目为了方便录入,都是做成列的. 但是这些数据需要和另外的费用报销系统的数据关联,费用报销系统的费用项目是横向的,用费用项目.金额的多行来表达.那么这 ...

  2. sql查询一个字段多列值合并为一列

    SELECT GROUP_CONCAT(A.字段) AS 字段别名 FROM 表名 A WHERE A.字段=,,) SELECT GROUP_CONCAT(A.字段) AS 字段FROM 表名 A

  3. Expression构建DataTable to Entity 映射委托 sqlserver 数据库里面金额类型为什么不建议用float,实例告诉你为什么不能。 sql server 多行数据合并成一列 C# 字符串大写转小写,小写转大写,数字保留,其他除外 从0开始用U盘制作启动盘装Windows10系统(联想R720笔记本)并永久激活方法 纯CSS打造淘宝导航菜单栏 C# Winform

    Expression构建DataTable to Entity 映射委托   1 namespace Echofool.Utility.Common { 2 using System; 3 using ...

  4. 使用FOR XML PATH实现多行数据合并成一列

    有时为避免循环操作数据库.列表展示等一些原因需要将数据及关联数据批量加载进行集中处理,一种解决办法可以使用FOR XML PATH将多行数据合并成一列,达到字段拼接的效果.例如有两个表, 部门表T_D ...

  5. GROUP_CONCAT 将mysql多条数据合并为一条

    实现将多条数据合并为一条数据,在mysql中可以通过 GROUP_CONCAT 函数实现 上面是潇leader发我的和工作不相关的小小小需求描述,很明显是要把id和name相同的数据合并为一条,下面按 ...

  6. SQL 一列数据整合为一条数据

    SQL 一列数据整合为一条数据: SELECT  STUFF(( SELECT distinct  ',' + 列名 FROM 表名 where  [条件] FOR XML PATH('') ), 1 ...

  7. R之data.table -melt/dcast(数据合并和拆分)

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 30.0px "Helvetica Neue"; color: #323333 } p. ...

  8. SQL两列数据,行转列

    SQL中只有两列数据(字段1,字段2),将其相同字段1的行转列 转换前: 转换后: --测试数据 if not object_id(N'Tempdb..#T') is null drop table ...

  9. SQL SERVER 如何把1列多行数据 合并成一列显示

    示例 修改前:1列多行数据 修改后:合并成一列 示例语句 1 2 3 4 5 6 7 8 9 10 11 select 类别,     名称 = (         stuff(            ...

随机推荐

  1. 【转】Linux服务部署--Java(三) Nginx

    原文地址:Nginx Linux详细安装部署教程 一.Nginx简介 Nginx是一个web服务器也可以用来做负载均衡及反向代理使用,目前使用最多的就是负载均衡,具体简介我就不介绍了百度一下有很多,下 ...

  2. 原生js实现清除子元素节点

    var table = document.body.querySelector('.mui-table-view'); while(table.hasChildNodes()) //当table下还存 ...

  3. 使用pycharm以及用pycharm句子切分调试

    c在D盘建立了个文件夹,然后把segment1.py文件放进去. 然后双击segment1,就自动用pycharm打开了.然后就可以运行和debug.之前最开始的时候我segment1.py文件放桌面 ...

  4. __getitem__函数

    主要是为了探究第三行为什么打印出很多提示信息,然后探究了下为什么有第三行这种写法,是因为 这个类中定义了def __getitem__(self, query),这样就可以类似于list那种用法了.但 ...

  5. 关于UITableView的一些老是忘记的小杂碎

    1:如何取消单元格的选中状态 简简单单的一句 [TableView deselectRowAtIndexPath:[TableView indexPathForSelectedRow] animate ...

  6. 小甲鱼Python第三讲课后习题

    0.以下哪个变量的命名不正确?为什么? A:MM_520 B:_MM520_ C:520_MM D:_520MM 变量 命名:以字母.下划线.数字组成,以字母.下划线开头 1.除了使用反斜杠(\)进行 ...

  7. Myeclispe下struts-config.xml文件无法图形界面打开

    1.今天更改web.xml文件不小心误删了下面的配置文件,导致出现如图的错误 <servlet-mapping> <servlet-name>action</servle ...

  8. GMA Round 1 逃亡

    传送门 逃亡 你在森林中,遇到了一只老虎.此时此刻,老虎在(0,0)的位置,你在(2,1)的位置. 你开始沿着一条林间小路逃亡,移动向量是$(\frac{\sqrt{6}}{2},\frac{\sqr ...

  9. pygame-KidsCanCode系列jumpy-part17-mask-collide碰撞检测

    这节我们研究下pygame的几种碰撞检测模式: 如上图,左侧是默认的检测模式:基于矩形的检测(这也是性能最好的模式), 右侧是基于圆形的检测(性能略差于矩形检测). 矩形检测法虽然性能好,但是缺点也很 ...

  10. 《软件性能测试与LoadRunner实战教程》喜马拉雅有声图书上线

    工作忙的同学们有福了,可以听书了. 于涌老师的<软件性能测试与LoadRunner实战教程>喜马拉雅有声图书上线.