楼主: 李会超
1791 1

[R] R语言merge函数总结 [推广有奖]

  • 1关注
  • 31粉丝

已卖:1166份资源

教授

33%

还不是VIP/贵宾

-

威望
0
论坛币
121239 个
通用积分
62.0400
学术水平
140 点
热心指数
152 点
信用等级
84 点
经验
56173 点
帖子
1180
精华
1
在线时间
1120 小时
注册时间
2008-11-6
最后登录
2024-4-29

楼主
李会超 发表于 2015-3-6 15:30:04 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

写sql写习惯了,学R的时候也想用到类似sql里面的merge功能,看了r帮助文档后进行了一些总结

以r文档里面的例子来介绍,假如有这样两个数据框authors和books

  1. authors <- data.frame(
  2.     surname = I(c("Tukey", "Venables", "Tierney", "Ripley", "McNeil")),
  3.     nationality = c("US", "Australia", "US", "UK", "Australia"),
  4.     deceased = c("yes", rep("no", 4)))
  5. books <- data.frame(
  6.     name = I(c("Tukey", "Venables", "Tierney",
  7.              "Ripley", "Ripley", "McNeil", "R Core")),
  8.     title = c("Exploratory Data Analysis",
  9.               "Modern Applied Statistics ...",
  10.               "LISP-STAT",
  11.               "Spatial Statistics", "Stochastic Simulation",
  12.               "Interactive Data Analysis",
  13.               "An Introduction to R"),
  14.     other.author = c(NA, "Ripley", NA, NA, NA, NA,
  15.                      "Venables & Smith"))
复制代码


如果要实现类似sql里面的inner join 功能,则用代码

  1. m1 <- merge(authors, books, by.x = "surname", by.y = "name")
  2. 如果要实现left join功能则用代码
  3. m1 <- merge(authors, books, by.x = "surname", by.y = "name",all.x=TRUE)
  4. right join功能代码
  5. m1 <- merge(authors, books, by.x = "surname", by.y = "name",all.y=TRUE)
  6. all join功能代码
  7. m1 <- merge(authors, books, by.x = "surname", by.y = "name",all=TRUE)
复制代码


关于单变量匹配的总结就是这些,但对于多变量匹配呢,例如下面两个表,需要对k1,k2两个变量都相等的情况下匹配

  1. x <- data.frame(k1 = c(NA,NA,3,4,5), k2 = c(1,NA,NA,4,5), data = 1:5)
  2. y <- data.frame(k1 = c(NA,2,NA,4,5), k2 = c(NA,NA,3,4,5), data = 1:5)
复制代码


匹配代码如下
  1. merge(x, y, by = c("k1","k2"))  #inner join
复制代码




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:merge函数 Merge R语言 Authors Author R语言 merge函数

已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
niuniuyiwan + 100 + 100 + 3 + 5 + 5 精彩帖子
zl89 + 60 精彩帖子

总评分: 经验 + 160  论坛币 + 100  学术水平 + 3  热心指数 + 5  信用等级 + 5   查看全部评分

本帖被以下文库推荐

学无止境,坚持!

沙发
niuniuyiwan 在职认证  发表于 2015-10-17 08:51:04
感谢分享,感谢楼主。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-5 16:30