全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 数据分析与数据挖掘
545 0
2020-11-10
有一点R的一点SQL
我的侄子是一个非常令人印象深刻的年轻人。五年前,他获得了著名大学的生物化学/分子生物学博士学位,并在此过程中获得了许多教学和研究奖。然后,他在一所大学担任教职,几年后,他决定除了执行教学和研究职责外,还必须具备分析计算的素养。
他已经精通R语言,并完成了Johns Hopkins的Coursera数据科学专业课程,以及其他课程/自学课程,包括SQL,生物信息学/生物导体,R的生命科学统计学和生命科学的高级统计学。在这一点上,他是一位真正的数据科学家,利用其强大的科学背景以及新开发的计算和分析技能。
随着他的进步,我们偶尔会举行Skype视频会议,讨论R,RStudio和SQL的各个方面。在前一堂课之前,他问我们是否可以专注于外部联接和相关子查询,以及他当时的SQL课程中的高级主题。在致电之前,我决定在R中访问一些易于访问的数据,并组装一些R / SQL脚本来说明实际使用的高级查询。
在SQL中,等式联接或内部联接是一种在联接属性完全匹配的情况下链接表的联接。来自任何一个表中彼此不匹配的行均不会返回。相反,通过外部联接,可以返回一个或两个表中不匹配的行。例如,左联接仅返回左表中的匹配行和不匹配行。我经常在数据处理中使用左联接。
相关子查询是嵌套在另一个查询中的查询,该查询使用外部的值来探究内部。相关的子查询功能非常强大,其操作就像计算量大的嵌套循环一样,因此必须谨慎使用。
用于展示我们的调用的SQL查询的脚本使用R及其MonetDBLite SQL引擎的数据库接口DBI。R包nycflights13由五个data.frames组成,提供了数据基础。
我最近通过Microsoft Open R 3.4.4将代码升级到了Jupyter Notebook。另外,在将data.frame推入MonetDB表之后,我编写了几个函数来封装MonetDBLite SQL。flightdb由336776个记录组成,是“事实”表,其尺寸为airlinesdb,airportsdb,planesdb和weatherdb。方便地,使用flightdb作为左外部联接的计数查询很好地说明了我侄子想看到的概念。使用相关的子查询来探查这些连接的命中和未命中计数也很容易。本笔记本的其余部分详细介绍了查询的代码和结果。
顺便说一句,我的侄子立即获得了外部联接的要点,并立即关联了子查询。现在,他凭借计算和分析技能,正寻求从学术界转向商业数据科学。一些幸运的公司将获得雇用他的好运。
题库
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群