R语言数据合并-cbind(),rbind

Python038

R语言数据合并-cbind(),rbind,第1张

rbind/cbind对数据合并的要求比较严格:合并的变量名必须一致;数据等长

cbind是根据列进行合并,合并的前提是所有数据行数相等。

 rbind是根据行进行合并,就是自动往下面顺延,但要求所有数据列数是相同的才能用rbind.

R语言的merge函数可以实现类似SQL的有点类似 left join right join 或者类似union的效果。

执行merge函数时,函数自动会找到两个数据框df1和df2共有的列,即id那一列(即相当于by= "id"),当参数all= FALSE时,会将两个数据框中该列数值相等的那些行输出来,类似于对这两个数据框的id这一列求交集(intersection)。此例中是id为2或7这两行。此外,还可以发现df1和df2的输入顺序不会影响最终结果,仅仅会影响输出结果中heights和weights这两列的顺序。

更详细可以参考 http://rstudio-pubs-static.s3.amazonaws.com/13602_96265a9b3bac4cb1b214340770aa18a1.html

by参数的使用

上面的示例中by参数只有一个值,如果有两个数值(即长度为2的向量),也就是两个数据框中有共同的两列。

为两个数据框分别添加一列后,这样它们就有了共同的两列。当运行merge函数后发现,函数会自动找到共同的列,然后找到id和sex这两列中共有的数值。此外,如果只设定by= "id"的话,则两数据框中共有的sex那一列则会以sex.x和sex.y形式输出。

画热图中耽误时间较久的部分

https://www.jianshu.com/p/db53f7463d3f?open_source=weibo_search

如下三个数据框

创建一个空list,利用get()将所有数据框写入,形成一个2维的list,然后利用do.call()进行合并

实际中,我用for(i in length(vector)) {} 结果都只有最后一次循环的结果。 改成for(i in c(1:7))) {}

https://www.jianshu.com/p/fd60374d9577?utm_campaign=hugo&utm_medium=reader_share&utm_content=note&utm_source=weixin-friends

数据框就是向量按列组合