美文网首页数据-R语言-图表-决策-Linux-Python程序员@IT·互联网
《R语言实战》第四章 基本数据管理 学习笔记

《R语言实战》第四章 基本数据管理 学习笔记

作者: 哈哈乐哈 | 来源:发表于2017-02-27 13:01 被阅读0次

    有句话说:所有光鲜亮丽的背后,都曾熬过无数个不为人知的黑夜——这句话可以套用在任何一件大大小小的劳动成果上!编程如是,此处学习的数据分析亦是!
    数据分析,名为分析,但其实质对其分析前的数据进行预处理就得花上老半天,当然也不难理解,在当今这个信息丰富的世界中,数据的来源和格式多种多式,目前还没有哪种计算机语言一看到原始数据就能bala开始分析的。所以这第四章的内容讲的还是对数据的基本处理。

    操纵日期和缺失值
    熟悉数据类型的转换
    变量的创建和重编码
    数据集的排序、合并和取子集
    选入和丢弃变量

    从实例开始学习

    数据:朝阳医院2016年销售数据.xlsx—该数据是取自于猴子老师讲座中的实例。

    QQ截图朝阳医院2016销售数据.png
    简单数据分析的思路与步骤

    **一、读取Excel数据 **
    二、对数据进行预处理
    1,列名重命名
    2,删除缺失值
    3,处理日期
    4,数据类型转换
    5,数据排序
    三、数据分析
    1,分析月均消费次数。(月均消费次数=总消费次数/月份数 (注:同一天内,同一个人发生的所有消费算作一次消费。))
    2,分析月均消费金额。(月均消费金额=总消费金额/月份数)
    3,分析客单价。(客单价=每客总消费金额/每客总消费次数)
    4,分析消费趋势。(以周-消费金额绘制曲线图)

    具体来实际操作:

    一、读取Excel数据

    这里使用(openxlsx)包读取Excel数据,未安装此包前请先下载安装并载入方可使用。


    QQ截图20170226173059.png

    读取数据后可通过函数 View()来预览


    导入数据后预览.png

    二、对数据进行预处理

    1,列名重命名
    变更行名.png
    2,删除缺失值

    删除缺失值之前,先对缺失值做个基本的了解。
    ⑴,什么是缺失值,就是在任何规模的项目中,数据都可能由于未作答、设备故障或误编码数据的缘故而不完整,这些不完整的值通常称作缺失值。缺失值以符号 NA(Not Available)表示。

    ⑵,缺失值的应用
    A, is.na()函数,用于识别包含缺失值的观测。


    QQ截图3.png

    在处理缺失值时,注意两点:

    1,缺失值是不可比较的。意味着无法使用运算符来检测数据中是否存在缺失值,只能使用处理缺失值的函数来识别,如 is.na()函数。
    2,R 中缺失值不包括正负无穷数或者不可能出现的数值。正无穷用 Inf 标记,负无穷用 -Inf 标记,不可能的值 用 NaN 标记。识别这两种数据时需分别用到不同的函数 is.infinite() 或 is.nan() 。

    B,排除数据中的缺失值
    ■ 在函数中添加参数 na.rm=TRUE


    排除缺失值例一.png

    ■ 通过函数 na.omit() 移除所有含有缺失值的行。


    排除缺失值例二.png

    ■通过逻辑运算符 !is.na--非is.na来处理缺失值
    从数据框中选出销售时间不为空的数据。含有缺失值的第6579行被剔除。


    删除缺失值例三.png
    在此,同时补充一下R中的逻辑运算符,如下,逻辑运算符表达式可返回TRUE或FALSE.
    逻辑运算符.png
    3,处理日期

    在导入的Excel数据里,购药时间格式为字符串"2016-01-01 星期五",这样的值在R 中是没法进行统计的,需要拆分成我们想要的"2016-01-01",此时,需要用到函数
    str_split_fixed()

    日期处理例一.png
    日期值通常以字符串的形式输入R中的,需要用日期值进行数据分析时,往往需将其转化为数值型,函数 as.Data()用于执行这种转化。日期值的默认输入格式为yyyy-mm--dd
    日期值例二.png
    R中给出了用于读入日期的适当格式,如下:
    日期格式图.png
    4,数据类型转换

    判断数据的类型及将其转换为指定的类型,R中是有相应的函数来执行的


    类型转换函数图.png

    下面将是将导入的Excel表中的三组数据执行转化:


    数据类型转换例一.png
    5,数据排序

    在R中,使用order()函数给一个数据框进行排序。默认的排序是升序。在排序变量前边加一个减号(-)或者添加参数 decreasing=TRUE 即可得到降序的排序结果(=FALSE 表升序)。


    数据排序例一.png

    三、数据分析

    1,月均消费次数

    月均消费次数=总消费次数/月份数
    在这里,同一天内,同一个人发生的所有消费只算作一次消费。在获取总消费次数时,根据消费数据里购药时间、社保卡号先判断出哪些消费数据是重复的(购药时间和社保卡号两个值都相同的数据为重复,只能算作一次消费),这样重复的数据只取其一,可以用函数 !duplicated()来实现这样的操作。
    获取总消费次数 "consumeNumber 5394"

    月均消费次数例一.png
    获取总消费天数 "day 200"
    计算月份数,这里只考虑一个月30天的情况。"month 6"
    计算月均消费次数,四舍五入保留小数点后两位数。"monthconsume 899.00"
    月均消费次数例二.png
    2,月均消费金额

    月均消费金额=总消费金额/月份数,见下图:

    月均消费金额例1.png
    3,客单量

    客单价=每客总消费金额/每客总消费次数

    客单价例1.png
    4,消费趋势

    在这里,将以单位周的消费金额绘制曲线图来展示未来的消费趋势。
    首先,计算出每周消费金额,可以用函数 tapply()来实现。运用 tapply()函数计算后得到一个二维数组,一维是第几周的序号,二维是对应的这周的总消费金额:


    每周消费金额例1.png

    将二维数组转化生成一个数据框:


    每周消费金额例2.png
    其次,将转化后的数据框列名进行重命名,并获取周数:
    每周消费金额例3.png
    最后,绘制曲线图
    消费曲线图.png
    消费曲线图2.png

    总算做了个了结,但还不熟练,还需练上起码三遍,加油!

    相关文章

      网友评论

        本文标题:《R语言实战》第四章 基本数据管理 学习笔记

        本文链接:https://www.haomeiwen.com/subject/hduowttx.html