美文网首页
R-rbind.fill|列数不一致的多个数据集“智能”合并,G

R-rbind.fill|列数不一致的多个数据集“智能”合并,G

作者: 云养江停 | 来源:发表于2022-08-16 13:37 被阅读0次

    Q:多个数据集,列数不一致,列名也不一致,如何按行合并,然后保留全部文件的变量并集呢?

    A:使用 rbind.fill 函数试试!

    数据集按列合并时,可以根据merge 或者 dplyr函数包的merge系列函数决定连接方式,达到数据合并的需求。

    但是按行合并时常用的rbind,限制条件有点多,发现plyr包的rbind.fill 函数能比较好的解决这个问题。

    一, 载入数据

    #生成随机数据
    data1<- data.frame(x1=runif(5),x2= runif(5),x3= runif(5))
    data2<- data.frame(x1=rnorm(5),x4= runif(5))
    data3<- data.frame(x3=rnorm(5),x5= rnorm(5))
    

    data1,data2,data3 列数不一致,列名也不一致,如何按行合并,然后保留全部文件的变量并集呢?

    可能的问题:

    1)rbind: 是根据行进行合并(行叠加)但是要求rbind(a, c)中矩阵a、c的列数必需相等。

    2)列数相同的时候,变量名不一致也会合并,导致出错

    二 rbind.fill “智能”合并

    列数不一致多个数据集,需要按行合并,尝试使用plyr包rbind.fill函数

    library(plyr)
    rbind.fill(data1,data2,data3)
    

    就是这样,rbind.fill函数会自动对应数据列名不存在的会补充列,缺失时NA填充。

    相关文章

      网友评论

          本文标题:R-rbind.fill|列数不一致的多个数据集“智能”合并,G

          本文链接:https://www.haomeiwen.com/subject/wegrgrtx.html