



下面使用data()函数导入mtcars数据集,实现过程如下(源码位置:资源包\Code\02\view_data.R)。(1)在项目文件夹下新建一个R脚本文件,命名为view_data.R。
(2)加载程序包,使用data()函数导入mtcars数据集,代码如下:
library(datasets) # 加载程序包 data(mtcars) # 导入 mtcars 数据集
(3)显示数据,代码如下:
print(mtcars)
运行程序,结果如图2.11所示。
图2.11 显示数据
下面查看数据整体概况,包括行数、列数、列名、数据类型和数据,以便更清晰地了解数据,主要使用str()函数,代码如下(源码位置:资源包\Code\02\view_data.R):
str(mtcars)
运行程序,结果如图2.12所示。
图2.12 查看数据整体概况
从运行结果得知:数据有32行11列,可以查看所有的列名、数据类型和数据。
下面使用table()函数和is.na()函数查看并统计缺失值,代码如下(源码位置:资源包\Code\02\view_data.R):
table(is.na(mtcars))
运行程序,结果如下:
FALSE 352
从运行结果得知:数据不缺失个数为352,也就是说数据不存在缺失值,数据质量优。
描述性统计分析主要是为了快速查看统计信息,包括最小值、第1四分位数、中位数、平均数、第3四分位数和最大值,主要使用summary()函数实现,代码如下(源码位置:资源包\Code\02\view_data.R):
summary(mtcars)
运行程序,结果如图2.13所示。
图2.13 描述性统计分析
从运行结果得知:所有变量的最小值、第1四分位数、中位数、平均数、第3四分位数和最大值都被计算出来了。
下面按变速器类型统计不同车型的平均里程数、总马力和重量,主要使用aggregate()函数实现分组统计描述性统计量,代码如下:
myvars<-c("mpg","hp","wt") # 抽取数据
aggregate(mtcars[myvars],by=list(am=mtcars$am),mean) # 分组统计描述性统计量
运行程序,结果如下:
am mpg hp wt 1 0 17.14737 160.2632 3.768895 2 1 24.39231 126.8462 2.411000
从运行结果得知:自动挡车型平均里程数为17.14737,手动挡车型平均里程数为24.39231,说明手动挡更省油。
对于分类变量而言,如发动机缸体(vs)、变速箱(am)等,我们更需要了解的是分类变量中不同值的数量,如汽车发动机缸体(vs)V型的有多少辆、直型的有多少辆。
下面实现按照分类变量统计数据。首先使用factor()函数将变量vs和am转换为因子,使用ordered()函数将变量cyl、gear和carb转换为有序变量,然后使用within()函数修改数据框,最后使用summary()函数对修改后的数据框进行描述性统计分析,代码如下:
# 使用 within()函数修改数据框
mtcars2 <- within(mtcars, {
# 使用 factor()函数将变量转换为因子
vs <- factor(vs, labels = c("V 型", "直型"))
am <- factor(am, labels = c("自动挡", "手动挡"))
# 使用 ordered()函数将变量转换为有序变量
cyl <- ordered(cyl)
gear <- ordered(gear)
carb <- ordered(carb)
})
# 描述性统计分析
summary(mtcars2)
运行程序,结果如图2.14所示。
图2.14 按照分类变量统计数据
从运行结果得知:cyl、vs、am、gear和carb分类变量中各个值的数量都被统计出来了。例如,32辆汽车中,4缸11辆、6缸7辆、8缸14辆;发动机缸体V型18辆,直型14辆;自动挡19辆,手动挡13辆。