R语言教程:数据重塑
合并数据框
R 语言合并数据框使用 merge() 函数。
merge() 函数语法格式如下:
# S3 方法 merge(x, y, …) 1. data.frame 的 S3 方法 merge(x, y, by = intersect(names(x), names(y)), by.x = by, by.y = by, all = FALSE, all.x = all, all.y = all, sort = TRUE, suffixes = c(".x",".y"), no.dups = TRUE, incomparables = NULL, …)
常用参数说明:
- x, y: 数据框
- by, by.x, by.y:指定两个数据框中匹配列名称,默认情况下使用两个数据框中相同列名称。
- all:逻辑值; all = L 是 all.x = L 和 all.y = L 的简写,L 可以是 TRUE 或 FALSE。
- all.x:逻辑值,默认为 FALSE。如果为 TRUE, 显示 x 中匹配的行,即便 y 中没有对应匹配的行,y 中没有匹配的行用 NA 来表示。
- all.y:逻辑值,默认为 FALSE。如果为 TRUE, 显示 y 中匹配的行,即便 x 中没有对应匹配的行,x 中没有匹配的行用 NA 来表示。
- sort:逻辑值,是否对列进行排序。
merge() 函数和 SQL 的 JOIN 功能很相似:
- Natural join 或 INNER JOIN:如果表中有至少一个匹配,则返回行
- Left outer join 或 LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
- Right outer join 或 RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
- Full outer join 或 FULL JOIN:只要其中一个表中存在匹配,则返回行