除了使用R默认的数据操作语句进行数据的操作,还可以使用结构化查询语句(SQL),这在R中可以使用sqldf包,使用这个包可以利用sql
语句进行数据的处理。
SQLDF包
要使用,首先要下载并安装这个包,使用install.packages("sqldf")
,然后便可以使用sqldf()
函数在数据框上使用SQL
的SELECT
语句。
用下面的例子说明sqldf
的使用,我也只是SQL
小白,懂得不多,简单使用一下。
SQL
高手请别见笑。
library(sqldf)
newdf <- sqldf("select * from mtcars where carb =1 order by mpg", row.names = TRUE)
newdf
mpg cyl disp hp drat wt qsec vs am gear carb
Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
Toyota Corona 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1
Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
Fiat X1-9 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1
Fiat 128 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1
Toyota Corolla 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1
上面语句的从内置数据集mtcars
中选取变量carb = 1
的所有变量,并根据变量mpg
排序,row.names = TRUE
是保留行名。
再适用一个例子:
> sqldf("select avg(mpg) as avg_mpg, avg(disp) as avg_disp, gear, cyl from mtcars where cyl in (4, 6) group by gear")
avg_mpg avg_disp gear cyl
1 20.33333 201.0333 3 6
2 24.53333 123.0167 4 6
3 25.36667 120.1333 5 4
从内置数据集mtcars
中,首先根据变量gear
分组,选取变量cyl
等于 4
和6
的所有变量计算其mpg
disp
的平均值作为变量,以及变量gear
和cyl
。
可以看到sqldf
包是一个实用的数据管理辅助工具。
小结
Chapter4讲解了大量基础知识,包括缺失值、日期值和处理方式;接着学习了如何确定一个对象的数据类型以及转换函数;学习了创建新变量,重编码,重命名,排序,数据和其它数据的合并以及变量和观测的保留和剔除。
网友评论