zoukankan      html  css  js  c++  java
  • r里面如何实现两列数据合并为一列

    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
  • 相关阅读:
    阿里云系列——3.企业网站备案步骤---2018-1-4
    关于VS2017安装的一点扩充说明(15.5)
    Git环境配置+VSCode中文乱码问题
    抛砖引玉之~sftp
    关于链接文件的探讨
    VSCode插件MSSQL教程(昨天提了一下)
    SQL Server 2017 安装过程中的一点说明(有点意思)
    PS如何批量生成缩略图(方法可以通用其他重复劳动)
    mdb导入SqlServer
    01.码医入门(完篇)
  • 原文地址:https://www.cnblogs.com/awishfullyway/p/6677031.html
Copyright © 2011-2022 走看看