R for data science(十六)-dplyr 连接函数

count函数

使用count函数返回值为生成的一个新的data.frame,左边那列为要统计的对象,右边为该对象的个数,且第二列列名为n

count后面跟一个数据框,代表的是数据框行数

count(flights)
planes%>%
  count(tailnum)
image.png
count 排序,默认为从小到大排序
planes%>%
  count(tailnum,sort = T)
count 之后筛选
planes%>%
  count(tailnum)%>%
  filter(n>1)
image.png
count 统计多列文件
flights%>%
  count(year,month,day)
image.png
多个条件下的count等价于group_by之后count
flights%>%
  group_by(year,month,day)%>%
  count()
image.png

合并连接

主要适用于两个数据框之间的拼接

常用的函数 left_join和inner_join
用法均是: x %>%inner_join/left_join(y,by=)
内连接: inner_join by 参数后面为键
image.png
image.png
image.png

必须保证要合并的两个数据框键的名字是一样的,否则就会出错

x %>% 
  inner_join(y, by = "key")
image.png

当健的名字不一样,该怎么解决?如下:


names(x)[1]="n1"

names(y)[1]="n2"

x %>% 
  inner_join(y, by = c("n1"="n2"))
##或者省去by

x %>% 
  inner_join(y,  c("n1"="n2"))
image.png
只要两个数据框的键是相同的就会被连接在一起
就是说只保留二者共有的键进行合并,x%>%inner_join(y,by=) 则为x在前,y在后

外链接

左连接 保留x中的所有观测 left_join 最常用
右链接 保留x中的所有观测 right_join
全连接 保留x和y中的所有观测 full_join
image.png
筛选连接
semi_join(x,y,by) 在指定的键中,只会保留x中与y相同的行
重要的是存在匹配,匹配到哪一行不重要
image.png
image.png
anti_join(x,y,by) 在指定的键中,只会保留x中与y不相同的行,即代表把相同的行去掉,保留x中与y键不同的行
image.png

连接flights和planes时,查看flights中有多少行在planes中有记录,用count更快

flights%>%
  semi_join(planes,by="tailnum")%>%
  nrow()
#######
flights%>%
  semi_join(planes,by="tailnum")%>%
  count()

image.png

连接flights和planes时,查看flights中有多少行在planes中没有记录

flights%>%
  anti_join(planes,by="tailnum")%>%
  nrow()

flights%>%
  anti_join(planes,by="tailnum")%>%
  count()

image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • MYSQL 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 MySQL基本操...
    Kingtester阅读 8,045评论 5 115
  • 观其大纲 page 01 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 M...
    周少言阅读 3,244评论 0 33
  • 不管内敛或张扬 人人都有潇洒上台的梦藏在心房 要实现这个梦想 要让演讲为你的事业插上腾飞的翅膀 要在培训或演讲的道...
    周力之阅读 894评论 8 5
  • 九九重阳志未铭, 邀友结伴向山行。 峻峭山岭踩脚下, 登高眺望众山群。 云海茫茫足下过, 古木幽幽树成林。 满山遍...
    6699流萤若雪阅读 403评论 0 0

友情链接更多精彩内容