92、R语言分析案例
1、读取数据
> bank=read.table("bank-full.csv",header=TRUE,sep=";")
>
2、查看数据结构
> bank=read.table("bank-full.csv",header=TRUE,sep=",")
> str(bank)
'data.frame': 41188 obs. of 21 variables:
$ age : int 56 57 37 40 56 45 59 41 24 25 ...
$ job : Factor w/ 12 levels "admin.","blue-collar",..: 4 8 8 1 8 8 1 2 10 8 ...
$ marital : Factor w/ 4 levels "divorced","married",..: 2 2 2 2 2 2 2 2 3 3 ...
$ education : Factor w/ 8 levels "basic.4y","basic.6y",..: 1 4 4 2 4 3 6 8 6 4 ...
$ default : Factor w/ 3 levels "no","unknown",..: 1 2 1 1 1 2 1 2 1 1 ...
$ housing : Factor w/ 3 levels "no","unknown",..: 1 1 3 1 1 1 1 1 3 3 ...
$ loan : Factor w/ 3 levels "no","unknown",..: 1 1 1 1 3 1 1 1 1 1 ...
$ contact : Factor w/ 2 levels "cellular","telephone": 2 2 2 2 2 2 2 2 2 2 ...
$ month : Factor w/ 10 levels "apr","aug","dec",..: 7 7 7 7 7 7 7 7 7 7 ...
$ day_of_week : Factor w/ 5 levels "fri","mon","thu",..: 2 2 2 2 2 2 2 2 2 2 ...
$ duration : int 261 149 226 151 307 198 139 217 380 50 ...
$ campaign : int 1 1 1 1 1 1 1 1 1 1 ...
$ pdays : int 999 999 999 999 999 999 999 999 999 999 ...
$ previous : int 0 0 0 0 0 0 0 0 0 0 ...
$ poutcome : Factor w/ 3 levels "failure","nonexistent",..: 2 2 2 2 2 2 2 2 2 2 ...
$ emp.var.rate : num 1.1 1.1 1.1 1.1 1.1 1.1 1.1 1.1 1.1 1.1 ...
$ cons.price.idx: num 94 94 94 94 94 ...
$ cons.conf.idx : num -36.4 -36.4 -36.4 -36.4 -36.4 -36.4 -36.4 -36.4 -36.4 -36.4 ...
$ euribor3m : num 4.86 4.86 4.86 4.86 4.86 ...
$ nr.employed : num 5191 5191 5191 5191 5191 ...
$ y : Factor w/ 2 levels "no","yes": 1 1 1 1 1 1 1 1 1 1 ...
3、查看摘要统计量
> summary(bank)
age job marital education
Min. :17.00 admin. :10422 divorced: 4612 university.degree :12168
1st Qu.:32.00 blue-collar: 9254 married :24928 high.school : 9515
Median :38.00 technician : 6743 single :11568 basic.9y : 6045
Mean :40.02 services : 3969 unknown : 80 professional.course: 5243
3rd Qu.:47.00 management : 2924 basic.4y : 4176
Max. :98.00 retired : 1720 basic.6y : 2292
(Other) : 6156 (Other) : 1749
default housing loan contact month
no :32588 no :18622 no :33950 cellular :26144 may :13769
unknown: 8597 unknown: 990 unknown: 990 telephone:15044 jul : 7174
yes : 3 yes :21576 yes : 6248 aug : 6178
jun : 5318
nov : 4101
apr : 2632
(Other): 2016
day_of_week duration campaign pdays previous
fri:7827 Min. : 0.0 Min. : 1.000 Min. : 0.0 Min. :0.000
mon:8514 1st Qu.: 102.0 1st Qu.: 1.000 1st Qu.:999.0 1st Qu.:0.000
thu:8623 Median : 180.0 Median : 2.000 Median :999.0 Median :0.000
tue:8090 Mean : 258.3 Mean : 2.568 Mean :962.5 Mean :0.173
wed:8134 3rd Qu.: 319.0 3rd Qu.: 3.000 3rd Qu.:999.0 3rd Qu.:0.000
Max. :4918.0 Max. :56.000 Max. :999.0 Max. :7.000 poutcome emp.var.rate cons.price.idx cons.conf.idx
failure : 4252 Min. :-3.40000 Min. :92.20 Min. :-50.8
nonexistent:35563 1st Qu.:-1.80000 1st Qu.:93.08 1st Qu.:-42.7
success : 1373 Median : 1.10000 Median :93.75 Median :-41.8
Mean : 0.08189 Mean :93.58 Mean :-40.5
3rd Qu.: 1.40000 3rd Qu.:93.99 3rd Qu.:-36.4
Max. : 1.40000 Max. :94.77 Max. :-26.9 euribor3m nr.employed y
Min. :0.634 Min. :4964 no :36548
1st Qu.:1.344 1st Qu.:5099 yes: 4640
Median :4.857 Median :5191
Mean :3.621 Mean :5167
3rd Qu.:4.961 3rd Qu.:5228
Max. :5.045 Max. :5228
> psych::describe(bank)
vars n mean sd median trimmed mad min max
age 1 41188 40.02 10.42 38.00 39.30 10.38 17.00 98.00
job* 2 41188 4.72 3.59 3.00 4.48 2.97 1.00 12.00
marital* 3 41188 2.17 0.61 2.00 2.21 0.00 1.00 4.00
education* 4 41188 4.75 2.14 4.00 4.88 2.97 1.00 8.00
default* 5 41188 1.21 0.41 1.00 1.14 0.00 1.00 3.00
housing* 6 41188 2.07 0.99 3.00 2.09 0.00 1.00 3.00
loan* 7 41188 1.33 0.72 1.00 1.16 0.00 1.00 3.00
contact* 8 41188 1.37 0.48 1.00 1.33 0.00 1.00 2.00
month* 9 41188 5.23 2.32 5.00 5.31 2.97 1.00 10.00
day_of_week* 10 41188 3.00 1.40 3.00 3.01 1.48 1.00 5.00
duration 11 41188 258.29 259.28 180.00 210.61 139.36 0.00 4918.00
campaign 12 41188 2.57 2.77 2.00 1.99 1.48 1.00 56.00
pdays 13 41188 962.48 186.91 999.00 999.00 0.00 0.00 999.00
previous 14 41188 0.17 0.49 0.00 0.05 0.00 0.00 7.00
poutcome* 15 41188 1.93 0.36 2.00 2.00 0.00 1.00 3.00
emp.var.rate 16 41188 0.08 1.57 1.10 0.27 0.44 -3.40 1.40
cons.price.idx 17 41188 93.58 0.58 93.75 93.58 0.56 92.20 94.77
cons.conf.idx 18 41188 -40.50 4.63 -41.80 -40.60 6.52 -50.80 -26.90
euribor3m 19 41188 3.62 1.73 4.86 3.81 0.16 0.63 5.04
nr.employed 20 41188 5167.04 72.25 5191.00 5178.43 55.00 4963.60 5228.10
y* 21 41188 1.11 0.32 1.00 1.02 0.00 1.00 2.00
range skew kurtosis se
age 81.00 0.78 0.79 0.05
job* 11.00 0.45 -1.39 0.02
marital* 3.00 -0.06 -0.34 0.00
education* 7.00 -0.24 -1.21 0.01
default* 2.00 1.44 0.07 0.00
housing* 2.00 -0.14 -1.95 0.00
loan* 2.00 1.82 1.38 0.00
contact* 1.00 0.56 -1.69 0.00
month* 9.00 -0.31 -1.03 0.01
day_of_week* 4.00 0.01 -1.27 0.01
duration 4918.00 3.26 20.24 1.28
campaign 55.00 4.76 36.97 0.01
pdays 999.00 -4.92 22.23 0.92
previous 7.00 3.83 20.11 0.00
poutcome* 2.00 -0.88 3.98 0.00
emp.var.rate 4.80 -0.72 -1.06 0.01
cons.price.idx 2.57 -0.23 -0.83 0.00
cons.conf.idx 23.90 0.30 -0.36 0.02
euribor3m 4.41 -0.71 -1.41 0.01
nr.employed 264.50 -1.04 0.00 0.36
y* 1.00 2.45 4.00 0.00
4、查看数据是否有缺失
> sapply(bank,anyNA)
age job marital education default
FALSE FALSE FALSE FALSE FALSE
housing loan contact month day_of_week
FALSE FALSE FALSE FALSE FALSE
duration campaign pdays previous poutcome
FALSE FALSE FALSE FALSE FALSE
emp.var.rate cons.price.idx cons.conf.idx euribor3m nr.employed
FALSE FALSE FALSE FALSE FALSE
y
FALSE
>
5、单变量频数分析
> table(bank$y) no yes
36548 4640
>
6、两个变量的交叉列联表
> table(bank$y,bank$marital)
divorced married single unknown
no 4136 22396 9948 68
yes 476 2532 1620 12
>
> xtabs(~y+marital,data=bank)
marital
y divorced married single unknown
no 4136 22396 9948 68
yes 476 2532 1620 12
>
7、
> prop.table(tab,1)
divorced married single unknown
no 0.113166247 0.612783189 0.272189997 0.001860567
yes 0.102586207 0.545689655 0.349137931 0.002586207
> prop.table(tab,2)
divorced married single unknown
no 0.8967910 0.8984275 0.8599585 0.8500000
yes 0.1032090 0.1015725 0.1400415 0.1500000
>
8、构建更复杂的Table
> ftable(bank[,c(3,4,21)],row.vars = c(1,2),col.vars = "y")
y no yes
marital education
divorced basic.4y 406 83
basic.6y 169 13
basic.9y 534 31
high.school 1086 107
illiterate 1 1
professional.course 596 61
university.degree 1177 160
unknown 167 20
married basic.4y 2915 313
basic.6y 1628 139
basic.9y 3858 298
high.school 4683 475
illiterate 12 3
professional.course 2799 357
university.degree 5573 821
unknown 928 126
single basic.4y 422 31
basic.6y 301 36
basic.9y 1174 142
high.school 2702 448
illiterate 1 0
professional.course 1247 177
university.degree 3723 683
unknown 378 103
unknown basic.4y 5 1
basic.6y 6 0
basic.9y 6 2
high.school 13 1
illiterate 0 0
professional.course 6 0
university.degree 25 6
unknown 7 2
>
9、卡方检验
> tab
divorced married single unknown
no 4136 22396 9948 68
yes 476 2532 1620 12
> chisq.test(tab)
Pearson's Chi-squared test
data: tab
X-squared = 122.66, df = 3, p-value < 2.2e-16
>
10、连续数据可视化
> hist(bank$age)
>

11、连续变量的分布
> library(lattice)
> densityplot(~age,groups=y,data=bank,plot.point=FALSE,auto.key = TRUE)
>

92、R语言分析案例的更多相关文章
- R语言分析朝阳医院数据
R语言分析朝阳医院数据 本次实践通过分析朝阳医院2016年销售数据,得出“月均消费次数”.“月均消费金额”.“客单价”.“消费趋势”等结果,并据此作出可视化图形. 一.读取数据: library(op ...
- 用R语言分析与预測员工离职
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/kMD8d5R/article/details/83542978 https://mmbiz.qpic ...
- 分类算法的R语言实现案例
最近在读<R语言与网站分析>,书中对分类.聚类算法的讲解通俗易懂,和数据挖掘理论一起看的话,有很好的参照效果. 然而,这么好的讲解,作者居然没提供对应的数据集.手痒之余,我自己动手整理了一 ...
- 用R语言分析我的fitbit计步数据
目标:把fitbit的每日运动记录导入到R语言中进行分析,画出统计图表来 已有原始数据:fitbit2014年每日的记录电子表格文件,全部数据点此下载,示例如下: 日期 消耗卡路里数 步 距离 攀爬楼 ...
- 使用R语言分析股价波动
今天看的R语言.做个笔记. 使用R语言读取雅虎財经数据.分析微软公司(股票代码:MSFT)在2015年股价波动超过百分之十的日期. 然后通过检索新闻的方式,看看微软当天有什么新闻发生,导致股价波动. ...
- R语言分析(一)-----基本语法
一, R语言所处理的工作层: 解释一下: 最下面的一层为数据源,往上是数据仓库层,往上是数据探索层,包括统计分析,统计查询,还有就是报告 再往上的三层,分别是数据挖掘,数据展现和数据决策. 由上图 ...
- R语言分析(二)——薛毅R语言第二章后面习题解析
包括2.2—2.6中间的习题,2.2的习题中第三问和第四问,应该有其他的解答方法,但我看他的题目,似乎是在A和B的基础上进行,所以就选择了使用for循环的方法 做着习题,又不断查着书,这样,书籍也熟悉 ...
- R语言重要数据集分析研究——需要整理分析阐明理念
1.R语言重要数据集分析研究需要整理分析阐明理念? 上一节讲了R语言作图,本节来讲讲当你拿到一个数据集的时候如何下手分析,数据分析的第一步,探索性数据分析. 统计量,即统计学里面关注的数据集的几个指标 ...
- 大数据时代的精准数据挖掘——使用R语言
老师简介: Gino老师,即将步入不惑之年,早年获得名校数学与应用数学专业学士和统计学专业硕士,有海外学习和工作的经历,近二十年来一直进行着数据分析的理论和实践,数学.统计和计算机功底强悍. 曾在某一 ...
随机推荐
- 107、TensorFlow变量(三)
创建秩为1的张量 # create a rank1 tensor object import tensorflow as tf mystr = tf.Variable(["Hello&quo ...
- 安装php时,configure: error: xml2-config not found. Please check your libxml2 installation
参考文章:http://blog.csdn.net/anljf/article/details/6981247 安装php时的报错configure: error: xml2-config not f ...
- 解决 ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'
原文链接:https://blog.csdn.net/sea_snow/article/details/82498791 感谢原作者大大 提示:ERROR 1044 (42000): Access ...
- 启动线程,start和run的区别
每个线程都有要执行的任务.线程的任务处理逻辑可以在Tread类的run实例方法中直接实现或通过该方法进行调用,因此 run()相当于线程的任务处理逻辑的入口方法,它由Java虚拟机在运行相应线程时直接 ...
- Linux运维基础采集项
1. Linux运维基础采集项 做运维,不怕出问题,怕的是出了问题,抓不到现场,两眼摸黑.所以,依靠强大的监控系统,收集尽可能多的指标,意义重大.但哪些指标才是有意义的呢,本着从实践中来的思想,各位工 ...
- 兼容ie浏览器的方法
让IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap的解决方法 最近做一个Web网站,之前一直觉得bootstrap非常好,这次使用了bootstrap3,在chrome,f ...
- JAVA中的面向对象与内存解析_2
构造方法(构造函数) • 使用new +构造方法创建一个新的对象. • 构造函数是定义在Java类中的一个用来初始化对象的函数. • 构造函数与类同名且没有返回值. • 例如:Person类的构造 ...
- python3-三个demo带你入门装饰器
装饰器入门 在不修改程序源代码和程序调用方式的情况下,扩展程序功能时不得不用到装饰器. python中的装饰器可谓功能强大,强大到刚接触它就被它弄得措手不及. 但是,静下心来好好研究,那可是回味无穷. ...
- 网站设置成代理后,chrome chrome HTTP ERROR 502
在阿里云上设置CNAME代理后,发现www.xxxx.com出现502,但是http://xxxx.com却可以访问. ping了一下都可以,网上搜了搜原来和nginx.conf配置有关 配置如下,上 ...
- C#用new和override来实现抽象类的重写区别
一,抽象的实现 using System; using System.Collections.Generic; using System.Linq; using System.Text; namesp ...