作者:黄天元,复旦大学博士在读,目前研究涉及文本挖掘、社交网络分析和机器学习等。希望与大家分享学习经验,推广并加深R语言在业界的应用。
邮箱:huang.tian-yuan@qq.com
前言
本章介绍如何从表中检索一个或多个数据列。
首先我们加载需要使用的包。其中我们需要的航班数据flights数据集需要在nycflights13中加载:
1library(tidyverse)2library(nycflights13)
select函数
select是最常用的ETL函数之一,用途就是从表格中选取需要的列。
要使用这个函数,要搞清楚两个问题:1.从哪里获取数据?2.从数据里面提取什么?所以需要给出至少两个信息:1.表格名称;2.列名称。
我们从最简单的语句开始:
1flights %>%2 select(year)
1## # A tibble: 336,776 x 1 2## year 3## 4## 1 2013 5## 2 2013 6## 3 2013 7## 4 2013 8## 5 2013 9## 6 201310## 7 201311## 8 201312## 9 201313## 10 201314## # ... with 336,766 more rows
上面的语句表示:从flights表格中提取了名为year的列。相应的SQL语句如下:
1 SELECT `year`2FROM `flights`
提示:尽管SQL不区分大小写,但是统一使用大写来写SQL语句有利于提高可读性。另外,很多SQL语句要求最后要加分号(;),否则会报错。
检索多个列检索多个列与检索单列相似,需要给出多个列名称,而且列名称之间需要用逗号(,)隔开。需要注意的是,最后的列名称后面不能加逗号,否则会报错。
1flights %>%2 select(year,month,day)
1## # A tibble: 336,776 x 3 2## year month day 3## 4## 1 2013 1 1 5## 2 2013 1 1 6## 3 2013 1 1 7## 4 2013 1 1 8## 5 2013 1 1 9## 6 2013 1 110## 7 2013 1 111## 8 2013 1 112## 9 2013 1 113## 10 2013 1 114## # ... with 336,766 more rows
相应SQL语句如下:
1 SELECT `year`, `month`, `day`2FROM `flights`
检索所有列
R中只要输入表格名称,默认就是包含了表格所有列,因此提取所有列非常简单:
1flights