在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
本节书摘来自华章计算机《数据科学:R语言实现》一书中的第3章,第3.11节,作者 丘祐玮(David Chiu),更多章节内容可以访问云栖社区“华章计算机”公众号查看。 3.11 检测缺失数据缺失数据背后有许多原因。例如,可能是由于录入或者数据处理过程中的瑕疵导致的。然而,如果数据分析过程使用了缺失数据,分析的结果可能有误导性。因此,在做进一步分析之前,检测缺失数据尤为重要。 准备工作按照3.3节“转换数据类型”教程,把导入数据的每个属性转换成合适的数据类型。同时按照3.2节“重命名数据变量”中的步骤,命名employees和salaries数据集的列名。 实现步骤执行下列步骤,检测缺失数据。 1.首先,我们把to_date属性设置一个超过2100-01-01的日期: 2.然后,把超过2100-01-01的日期变成缺失值: 3.接着,我们可以使用函数is.na找出哪一行包含缺失值: 4.我们也可以使用函数sum对to_date中的缺失值计数: 5.并且,我们可以计算缺失值的比例: 6.如果你想知道每一列中的缺失值比例,我们可以使用函数sapply: 7.我们可以安装加载Amelia程序包: 8.使用函数missmap绘制缺失值地图: 你会看到以下图形,如图1所示。 运行原理在R中,缺失值经常使用NA标记出来,意思是不适用(not available)。大部分函数(例如mean或sum)在遇到数据集中的NA值时,会输出NA。尽管我们可以指定一个参数,例如na.rm,来移除NA的影响,但是最好还是在数据集中估计或移除缺失值,以避免缺失值带来的深远影响。 在本教程中,我们首先找出2100-01-01之后的数据记录。由于一个人的工资不可能在2100-01-01之后支付,我们可以把这些日期值看成是录入或者系统错误而导致的。因此,我们可以首先把这些值指定成缺失值(用NA表示)。然后,我们可以使用内置函数,搜索数据内部的缺失值。 为了找到数据集中的缺失值,我们首先对所有NA值个数加和,除以每个属性里的数值个数,然后借助sapply计算所有属性中的缺失值。 并且,为了使用表格展示计算结果,我们可以使用Amelia程序包,在一个图中绘制每个属性的缺失值地图。缺失值的可视化可以让用户更好地理解每个数据集的缺失比例。从图1中我们可以看出,1985包含的缺失值最多。 更多技能对于缺失值处理,我们介绍了使用Amelia来可视化缺失值。除了在控制台输入命令,我们也可以使用Amelia的交互式GUI,AmeliaView。 要运行AmeliaView,只需在R控制台键入AmeliaView(): 你会看到下列窗口,如图2所示。 |
请发表评论