学习笔记:R语言数据分析与挖掘(一)

                                                                     李慧子

R语言是一门功能强大、广受欢迎的数据挖掘类软件。由于工作需要和个人兴趣,本人利用闲暇时间,采用边学习边实践的方法,完成了R语言的快速入门。现将学习过程中归纳的知识点分享给大家,一方面可以让对R还比较陌生的朋友能够迅速了解R语言的整体框架与数据处理流程,另一方面也是为让自己更好地吸收理解。我主要学习参考的是《R语言数据分析与挖掘实战》、《R语言实战》这两本工具书,前者的特色是有丰富的案例研究,而后者更偏向知识点的讲解和梳理。总之各有千秋,可以结合起来学习。相关知识点的思维导图如下:

1、R语言学习的知识框架


2、R语言框架涵盖的知识点

(1)R语言基本知识


R最激动人心的一部分功能是通过可选模块的下载和安装来实现的。目前有5500多个包(package)的用户贡献模块可从http://cran.r-project.org/web/packages下载。这些包提供了横跨各种领域的新功能,包括分析地理数据、处理蛋白质谱等。

库(library):计算机上存储包的目录成为库,函数library()可以显示库中有哪些包。

包的安装:install.packages(“”)

包的载入:library()

包的使用:help(package=“package_name”)可以输出某个包的简短描述以及包中的函数名称和数据集名称的列表。

(2)创建、导入数据集


1.数据类型

①向量:用于存储数值型、字符型或逻辑型数据的一维数组。单个向量中的数据必须拥有相同的数据类型。

创建向量函数:c()

例子:a<-c(1,2,5,3)

②矩阵:一个二维数组,每个元素拥有相同的数据类型。

创建矩阵函数:matrix(vector,nrow,ncol,byrow=logical_value,dimnames=list(,))

例子:y<-matrix(1:20,nrow=5,ncol=4)#创建一个5*4的矩阵#

③数组:与矩阵类似,但是维度可以大于2。

创建数组函数:array()

④数据框:不同的列可以包含不同模式(数值型、字符型等)的数据,是R中最常处理的数据结构。

创建数据框函数:data.frame(col1,col2,col3,…)

⑤因子:变量可归结为名义型、有序型或连续型变量。名义变量和有序变量在R中称为因子。

创建因子函数:factor()

例子:diabetes<-c(“Type1”, “Type2”, “Type1”, “Type1”)

Diabetes<-factor(diabetes)#将此向量存储为(1,2,1,1),并在内部将其关联为1= Type1,2= Type2#

数值型变量可以用levels和labels参数来编码成因子。

⑥列表:对象的有序集合。

列表创建函数:list()

2.导入数据集

  读取Excel文件的最好方式,就是在Eexel中将其导出为一个逗号分隔文件(csv)

  读取数据函数:read.csv('./data/book3.csv',he=T)

网页上的文字可以使用函数readlines()来下载到一个R的字符向量中,然后使用grep()和gsub()一类的函数处理。对于结构复杂的网页,可以使用RCurl包和XML包来提取信息。

3.数据集的标注

包括为变量名添加描述性标签,以及为类别性变量中的编码添加值标签。

例如:names(patientdata)[2]<-“Age at hospitalization(in years)”#将age重命名为“Age at hospitalization(in years”#

Patientdata$gender<-factor(patientdata$gender,levels=c(1,2),labels=c(“male”, “female”))#创建值标签,1表示男性,2表示女性#

(3)数据探索


要点归纳

1.数据质量分析


例子:对餐饮销售额数据进行缺失值和异常值分析

编写代码对数据缺失值个数、缺失率以及缺失值所在的位置进行分析。


可以看到缺失值个数输出结果为1,占样本总量的0.497%,缺失值位于第15行,2015年2月14日销量数据缺失。

编写代码绘制箱形图,对数据异常值进行分析。



箭头所示的是一个标准差的区间,可以看出箱形图中超过上下界的8个销售额数据可能为异常值,需要引起注意并结合具体业务分析。

2.数据特征分析

贡献度分析

贡献度分析又称帕累托分析。就餐饮企业来说,应用贡献度分析可以重点改善某菜系盈利最高的前80%的菜品,或者重点发展综合影响最高的80%的部门。这种结果可以通过帕累托图直观地呈现出来。

例子:对餐饮系统对应的菜品盈利数据进行帕累托分析。代码及反馈结果如下



    可以发现,菜品A1-A7共7个菜品,占菜品总类数的70%,总盈利约占该月盈利额的85%。根据帕累托原则,应该增加对菜品A1-A7的成本投入,减少对菜品A8-A10的投入以获得更高的盈利额。

(4)数据预处理

在海量原始数据中存在不量不完整、有异常、不一致的数据,在使用前需要进行数据清洗。数据清洗完成后接着进行数据集成、变换、规约等一系列的处理,该过程就是数据预处理。在数据挖掘的过程中,数据预处理工作量占到了整个过程的60%。

数据预处理的主要内容包括数据清理、数据集成、数据变换和数据规约。这里主要对数据清理进行重点标示。


缺失值处理:

1. 删除法

删除行:na.omit()

删除变量:data[,-p]

2. 替换法

数值型变量用均值替换,非数值型变量,则使用其他全部有效观测值的中位数或者众数进行替换。

3. 插补法

回归插补:利用回归模型,将需要插值补缺的变量作为因变量,其他相关变量作为自变量,通过回归函数lm()预测出因变量的值来对缺失变量进行补缺。

多重插补:原理是从一个包含缺失值的数据集中生成一组完整的数据,如此进行多次,从而产生缺失值的一个随机样本,R中的mice函数可以用来进行多重插补。

例子:对某餐厅一段时间的销量表中的缺失值,用均值替换、回归插补、多重插补进行

缺失值插补,将异常值按缺失值处理。

首先对缺失值、异常值进行识别。R语言代码如下:


用is.na()函数对缺失值进行识别,从结果可发现第15行销售数据存在缺失。然后继续用单变量散点图和箱形图识别数据中的异常值。R语言代码如下:


R反馈回的结果如下图:


将异常值处理成缺失值。代码如下:


对缺失值进行处理。代码如下:


① 行删除法处理缺失值


处理完数据如下:



② 均值替换法处理缺失值


处理完数据如下:


③ 回归插补法处理缺失值


处理完数据如下:


(5)简单的数据建模


       第一篇笔记先写到这哈,感觉R语言涉及的知识面还是挺广的,学习之路还很长。最后,想自己动手操作一番,需要餐饮案例数据的朋友可以私信我。相互促进,交流心得。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,527评论 5 470
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,314评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,535评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,006评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,961评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,220评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,664评论 3 392
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,351评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,481评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,397评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,443评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,123评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,713评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,801评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,010评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,494评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,075评论 2 341

推荐阅读更多精彩内容