购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.6 数据预处理

2.6.1 导入mtcars数据集

下面使用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 显示数据

2.6.2 查看数据

下面查看数据整体概况,包括行数、列数、列名、数据类型和数据,以便更清晰地了解数据,主要使用str()函数,代码如下(源码位置:资源包\Code\02\view_data.R):

str(mtcars)

运行程序,结果如图2.12所示。

图2.12 查看数据整体概况

从运行结果得知:数据有32行11列,可以查看所有的列名、数据类型和数据。

2.6.3 缺失值查看

下面使用table()函数和is.na()函数查看并统计缺失值,代码如下(源码位置:资源包\Code\02\view_data.R):

table(is.na(mtcars))

运行程序,结果如下:

FALSE
  352

从运行结果得知:数据不缺失个数为352,也就是说数据不存在缺失值,数据质量优。

2.6.4 描述性统计分析

描述性统计分析主要是为了快速查看统计信息,包括最小值、第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辆。 vFqP5W6Sc6WJLEOLebXs5vcwcwtkn4Fqsr2vT6BDuUZpPp+E68jhOV45xW60/hYN

点击中间区域
呼出菜单
上一章
目录
下一章
×