定义一个book类,包括属性booktitle什么意思(书名),price(价格)及pub(出版社),pub的默认值是"

豆丁微信公众号
君,已阅读到文档的结尾了呢~~
关联规则在高校图书馆读者数据处理中的应用研究,关联规则,关联规则挖掘,关联规则算法,关联规则挖掘算法,weka 关联规则,关联规则分析,关联规则分类,强关联规则,mahout 关联规则
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
关联规则在高校图书馆读者数据处理中的应用研究
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口1.使用ggplot2进行高级绘图
1.在ggplot2中,图是采用串联起来(+)号函数创建的,每个函数属于自己的部分。library(ggplot2)ggplot(data=mtcars,aes(x=wt,y=mpg))+geom_point()++ labs(title="Automobile Data",x="Weight",y="Miles Per Gallon")
注:aes()函数的功能是指定每个变量扮演的角色,在本例中,变量wt的值以映射到沿x轴的距离,变量mpg的值是映射到沿y轴的距离。ggplot() 函数设置图形但没有自己的视觉输出。geom_point() 函数在图形中画点,创建了一个散点图。labs() 函数是添加注释的。
ggplot(data=mtcars,aes(x=wt,y=mpg))+geom_point(pch=17,color="blue",size=2)+geom_smooth(method="lm",color="red",linetype=2)+labs(title="Automobile Data",x="Weight",y="Miles Per Gallon")
注:geom_smooth() 函数增加了一条"平滑"曲线。默认情况下,平滑的曲线包括在95%的置信区间(较暗带)内。
3.ggplot2包提供了分组和小面化(faceting)的方法。分组指的是在一个图形中显示两组或多组观察结果。小面化指的是在单独、并排的图形上显示观察组。ggplot2包定义组或面时使用因子。
mtcars$am&- factor(mtcars$am,levels=c(0,1),labels=c("Automatic","manual"))mtcars$vs&- factor(mtcars$vs,levels=c(0,1),labels=c("V-Engine","Straight Engine"))& mtcars$cyl&- factor(mtcars$cyl)& library(ggplot2)& ggplot(data=mtcars,aes(x=hp,y=mpg,shape=cyl,color=cyl))++ geom_point(size=3)++ facet_grid(am~vs)++ labs(title="Automobile Data by Engine Type",x="Horsepower",y="Miles Per Gallon")
4.用几何函数指定图的类型
geom_bar() 条形图geom_boxplot() 箱线图geom_density() 密度图geom_histogram() 直方图geom_hline() 水平线geom_jitter() 抖动图geom_line() 线图geom_point() 散点图geom_rug() 地毯图geom_smooth() 拟合曲线geom_text() 文字注释geom_violin() 小提琴图geom_vline() 垂线
ggplot(singer,aes(x=voice.part,y=height))+geom_violin(fill="lightblue")+geom_boxplot(fill="lightgreen",width=0.2)
6.在R中,组通常用分类变量的水平(因子)来定义。ggplot()声明中的aes()函数负责分配变量(图形的视觉特征),所以这是一个分配分组变量的自然的地方。data(Salaries,package="car")library(ggplot2)ggplot(data=Salaries,aes(x=salary,fill=rank))+geom_density(alpha=0.3)
7.刻面facet_wrap(~var,ncol=n) 将每个var水平排列成n列的独立图facet_wrap(~var,nrow=n) 将每个var水平排列成n行的独立图facet_grid(rowvar~colvar) rowvar和colvar组合的独立图,其中rowvar表示行,colvar表示列facet_grid(rowvar~.) 每个rowvar水平的独立图,配置成一个单列facet_grid(.~colvar) 每个colvar水平的独立图,配置成一个单行
data(singer,package="lattice")library(ggplot2)ggplot(data=singer,aes(x=height,fill=voice.part))+geom_density()+facet_grid(voice.part~.)
9.geom_smooth()函数来添加一系列的平滑曲线和置信区域。
ggplot(data=Salaries,aes(x=yrs.since.phd,y=salary,linetype=sex,shape=sex,color=sex))+geom_smooth(method=lm,formula=y~poly(x,2),se=FALSE,size=1)+geom_point(size=2)
10.修改图形外观(1)par()函数或特定图画函数的图形参数来自定义基本函数,但对pplot2图形没有影响。(2)自定义函数scale_x_continuous() scale_y_continuous():breaks=指定刻度标记,labels=指定刻度标记标签,limits=控制要展示的值得范围。scale_x_discrete() scale_y_discrete() :breaks=对因子的水平进行放置和排序,labels=指定这些水平的标签,limits=表示哪些水平应该展示coord_flip() 颠倒x轴和y轴
ggplot(data=Salaries,aes(x=rank,y=salary,fill=sex))+geom_boxplot()+scale_x_discrete(breaks=c("AsstProf","AssocProf","Prof"),labels=c("Assistant\nProfessor","Associate\nProfessor","Full\nProfessor"))+scale_y_continuous(breaks=c(,00),labels=c("$50k","$100K","$150K","$200K"))+labs(title="Faculty Salary by Pank and Sex",x=" ",y="")
11.图例标题的位置由theme()函数中的legend.position选项控制。
ggplot(data=Salaries,aes(x=rank,y=salary,fill=sex))+geom_boxplot()+scale_x_discrete(breaks=c("AsstProf","AssocProf","Prof"),labels=c("Assistant\nProfessor","Associate\nProfessor","Full\nProfessor"))+scale_y_continuous(breaks=c(,00),labels=c("$50k","$100K","$150K","$200K"))+labs(title="Faculty Salary by Pank and Sex",x=" ",y="")+theme(legend.position=c(0.1,0.8))
& ggplot(mtcars,aes(x=wt,y=mpg,size=disp))+geom_point(shape=21,color="black",fill="cornsilk")+labs(x="Wight",y="Miles Per Gallon",title="hongqianjin",size="Engine\nDisplacement")
ggplot(data=Salaries,aes(x=yrs.since.phd,y=salary,color=rank))+scale_color_brewer(palette="Set1")+geom_point(size=2)
13.得到获得的数据集library(RColorBrewer)display.brewer.all()
14.多重图使用图形参数myrow和基本函数layout()把两个或更多的基本图形放到单个图形中,这个方法在ggplot2包中不适用。将多个ggplot2包的图形放到单个图形中最简单的方式是使用gridExtra包中grid.arrange()函数。
p1&-ggplot(data=Salaries,aes(x=rank))+geom_bar()p2&-ggplot(data=Salaries,aes(x=sex))+geom_bar()p3&-ggplot(data=Salaries,aes(x=yrs.since.phd,y=salary))+geom_point()
library(gridExtra)grid.arrange(p1,p2,p3,ncol=3)
15.保存图形ggsave()函数能更好的保存
library(ggplot2)myplot &- ggplot(data=mtcars,aes(x=mpg))+geom_histogram()ggsave(file="mygraph.png",plot=myplot,width=5,height=4)
ggplot(data=mtcars,aes(x=mpg))+geom_histogram()ggsave(file="hongqianjin.pdf")
没有 plot=选项,最近创建的图形会保存
一、&&&&&&& SPSS安装及介绍... 2
1.&&&& SPSS的安装... 2
2.&&&& SPSS的介绍... 2
二、&&&&&&& 统计学基本知识... 3
1.&&&& 统计学术语... 3
2.&&&& 连续型变量的描述性统计... 5
3.&&&& 分类型变量的统计描述... 8
4.&&&& -分布... 9
5.&&&& T-分布... 9
6.&&&& F-分布... 9
7.&&&& 参数估计... 9
8.&&&& 假设检验... 11
三、&&&&&&& SPSS分析的整体的思路... 13
1.&&&& 数据的获取... 13
2.&&&& 数据的处理... 13
3.&&&& 数据的预分析... 13
4.&&&& 模型的建立... 13
5.&&&& 报告的攒写... 14
一、&&&&&& SPSS安装及介绍
1.& SPSS的安装
百度网盘链接:
安装说明:
注意:请保持您的计算机连接网络!
第一步:双击IBM SPSS Statistics V21.0进行安装;
第二步:出现选择界面时选择中间选项(即 站点许可证);
第三步:点 下一步,一直到 完成(是否需要JAWS?随便选即可)。注意:最后那个单击注册获取提醒的请取消选项,此为广告。
第四步:请点击确定出现产品授权窗口,选择 立即授予产品许可证,复制下边代码:
QA3AW8U62Z4ZWTSPV44VXI65P59OLE547WHIQVZYWLARL9JEYQEGDUBLH8Z3ZCJAL3FLXMS98V95TSDYI7FOEXUPRR
点击下一步,一直到完成。
软件运行图标默认在程序菜单,请右键创建桌面快捷方式。
2.& SPSS的介绍
(1)软件的名称
最早:Statistical Package for Social Science
现在:IBM SPSS Statistics
(2)发展历史
60年代:美国斯坦福大学三位研究生研制
70年代:SPSS总部成立于芝加哥,推出SPSS中小型机版-SPSSX
80年代:微机版(V1~4)SPSS/PC+
90年代: Windows版(V6~10)
本世纪:11~24版,中文版
从被IBM收购之后,SPSS的更新都是一年一个版本,每年的8月中旬,总能见到
(3)基本特点
功能强大:
囊括了各种成熟的统计方法与模型,如方差分析、回归分析、聚类分析等;在数据准备方面,SPSS提供了各种数据准备与数据整理技术,如利用值标签来快捷录入数据、对连续性变量进行离散型转化、将几个小类别合并为一个大类别、重复记录的发现、异常数据发现等;还有各种常用的统计图形
兼容性好:
在数据方面不仅可在SPSS中直接进行数据录入工作,还可将excel表格数据、文本格式数据导入SPSS中进行分析,并且可以在word等软件中使用中文输出结果
易用性强:
强大的统计功能、简单易用、界面的友好、操作的简单,SPSS也向高级用户提供了编程功能
扩展性高:(以一种不同的方式)
二、&&&&&& 统计学基本知识
SPSS是针对于初学者的一种专业的统计分析软件,它的操作主要是以菜单式为主,页面的设置与excel很类似,可以增加初学者的亲切感,并且,SPSS在进行操作的时候一定会用到的结果按钮,SPSS软件都会默认为选择,目的就是防止初学者忘记选择,这一方面很人性化,所以,对于一种方法的操作,只要记得步骤结果很快的就会出来,但是,SPSS是一种专业的统计分析软件,所以,它的难点不在于软件的操作,而在于结果的查看,SPSS的结果会用到相应的统计基础知识,所以,在进行操作之前,需要了解一些统计学知识。
1.& 统计学术语
从一次观察到下一次观察会出现不同结果的某种特征,在SPSS中一列叫做一个变量,如:观察一个企业的销售额,这个月和上个月有所不同;观察股票市场上涨股票的家数,今天与昨天数量不一样;观察一个班学生的生活费支出,一个人和另一个人不一样;投掷一枚骰子观察其出现的点数,这次投掷的结果和下一次也不一样 “企业销售额”、“上涨股票的家数”、“生活费支出”、“投掷一枚骰子出现的点数”等就是变量;
在统计学里根据变量的形式与性质可以分为两大类:连续型变量与分类型变量,在后期进行分析的时候都是以分类型变量与连续型变量为主进行分析的,这两类变量其实是有原始的四种变量尺度转化而来的,下面展示的是原始的四种变量尺度在SPSS软件中相应的转化:
在SPSS软件中一行叫做一个个案,即为一个调查的主体
(3)总体与样本
总体(population):包含所研究的全部个体(数据)的集合;
样本(sample):从总体中抽取的一部分元素的集合;
样本量(sample size):构成样本的元素的数目
概率是对事件发生的可能性大小的度量;如:明天降水的概率是80%。这里的80%就是对降水这一事件发生的可能性大小的一种数值度量;你购买一只股票明天上涨的可能性是30%,这也是一个概率;
一个介于0和1之间的一个值;
事件A的概率记为P(A)
当试验的次数很多时,概率P(A)可以由所观察到的事件A发生次数(频数)的比例来逼近,在相同条件下,重复进行n次试验,事件A发生了m次,则事件A发生的概率可以写为:P(A)=
2.& 连续型变量的描述性统计
连续变量的统计描述从以下的几个方面:
集中趋势:大部分数值集中到某区间的趋势;
离散趋势:数值向两边分散的趋势;
分布形状(是否对称,分布曲线的形状);
分布特征(单、双峰,有无极端值等)
(1)集中趋势
消除了观测值的随机波动;易受极端值的影响
总体平均数:若一组数据X1,X2,…,XN,代表一个大小为N的有限总体,则其总体平均数为:
样本平均数:若一组数据x1,x2,…,xn,代表一个大小为n的有限样本,则其样本平均数为:
样本数据来自总体。样本的统计描述量可以反映总体数据的特征,但由于抽样等原因,使得样本数据不一定能够完全准确地反映总体,它可能与总体的真实值之间存在一定的差异。进行不同次抽样,会得到若干个不同的样本均值,它们与总体均值存在着不同的差异。
把一组数据按递增或递减的顺序排列,处于中间位置上的变量值就是中位数,它是一种位置代表值,所以不会受到极端数值的影响,具有较高的稳健性。
如果为奇数,那么该数列的中位数就是位置 (N+1)/2上的数;
如果N为偶数,中位数则是该数列中第 N/2与第N /2+1位置上两个数值的平均数。
C:四分位数
四分位数 是将一组个案由小到大(或由大到小)排序后,用3个点将全部数据分为四等份,与3个点上相对应的变量称为四分位数,分别记为Q1(第一四分位数)、Q2(第二四分位数)、Q3(第三四分位数)。其中,Q3到Q1之间的距离的一半又称为四分位差,记为Q。四分位差越小,说明中间的数据越集中;四分位数越大,则意味着中间部分的数据越分散,
四分之一位数=n/4
四份之三位数=3n/4
一组数据中出现次数最多的变量值;
适合于数据量较多时使用;
不受极端值的影响;
一组数据可能没有众数或有几个众数
(2)离散趋势
定义:全距也称为极差,是数据的最大值与最小值之间的绝对差。
在相同样本容量情况下的两组数据,全距大的一组数据要比全距小的一组数据更为分散;
离散程度的最简单测度值:
易受极端值影响:
未考虑数据的分布
计算公式:最大值-最小值
B:方差与标准差
定义:方差是所有变量值与平均数偏差平方的平均值,它表示了一组数据分布的离散程度的平均值。标准差是方差的平方根,它表示了一组数据关于平均数的平均离散程度;
方差和标准差越大,说明变量值之间的差异越大,距离平均数这个“中心”的离散趋势越大
(样本方差)
(总体方差)
C:四分位差
也称为内距或四分间距;
上四分位数与下四分位数之差:Qd = QU – QL;
反映了中间50%数据的离散程度;
不受极端值的影响;
用于衡量中位数的代表性
D:离散系数
标准差与其相应的均值之比;
对数据相对离散程度的测度;
消除了数据水平高低和计量单位的影响;
用于对不同组别数据离散程度的比较;
计算公式为:
(3)分布形状与特征
A:正太分布
定义:若连续型随机变量X的概率分布密度函数为
其中,μ为平均数,?^2为方差,则称随机变量X服从正态分布,
记为X~N( μ,?^2),不同的μ、不同的?,对应于不同的正态分布,正太分布是是关于X=μ对称
B:标准正太分布
标准正态分布 :均数μ为0,、标准差为1的正态分布;
标准化Z分数:计算公式
标准正太分布主要是用来进行Z得分的计算,Z得分的特点:
也称标准化值;
对某一个值在一组数据中相对位置的度量;
可用于判断一组数据是否有离群点(outlier);
用于对变量的标准化处理;
均值等于0,方差等于1
定义:峰度(Kurtosis)是描述某变量所有取值分布形态陡缓程度的统计量。这个统计量是与正态分布相比较的量。记为β
计算公式为:&
β&0&&& 峰的形状比较尖,比正态分布峰要陡峭,数据比正太时更加的集中;
β&0&&& 峰的形状比较缓,比正态分布峰要平坦,数据比正太时分散;
β=0&&& 正态分布峰
定义:偏度是描述数据分布形态的,它是描述某变量取值分布对称性的统计量。
计算公式为:
Skewness &0&&& 正偏或右偏,长尾在右,峰尖偏左;
Skewness &0&&& 负偏或左偏,长尾在左,峰尖偏右;
而偏度的绝对值数值越大表示分布形态的偏斜程度越大。
3.& 分类型变量的统计描述
(1)单个分类变量的统计描述
频数描述:频数就是一个变量在各个变量值上取值的个案数。如要了解学生某次考试的成绩情况,需要计算出学生所有分数取值,以及每个分数取值有多少个人,这就需要用到频数分析
(2)多个分类变量的统计描述
主要是用表格对不同变量下的不同类别的频数进行统计
设X ~ N(μ,σ2),则~N(0,1);
令Y=X2 ,则 y 服从自由度为1的分布,即Y~X(1);
对于n个正态随机变量y1 ,y2 ,yn,则随机变量,
称为具有n个自由度的X2分布;
分布的变量值始终为正;
分布的形状取决于其自由度n的大小,通常为不对称的正偏分布,但随着自由度的增大逐渐趋于对称;
期望为:E(X2)=n,方差为:D(X2)=2n(n为自由度)
5.& T-分布
也被称为学生分布(student’s t); t 分布是类似正态分布的一种对称分布,通常要比正态分布平坦和分散。一个特定的分布依赖于称之为自由度的参数。随着自由度的增大,分布也逐渐趋于正态分布,
6.& F-分布
设若U为服从自由度为n1的c2分布,即U~2(n1),V为服从自由度为n2的?c2分布,即V~c2 (n2),且U和V相互独立,则:
称F为服从自由度n1和n2的F分布,记为F~F(n1,n2)
7.& 参数估计
A:估计量与估计值
参数估计(parameter estimation)就是用样本统计量去估计总体的参数;
估计量:用于估计总体参数的统计量的名称,如样本均值,样本比例,样本方差等,例如: 样本均值就是总体均值μ的一个估计量;
参数用Θ表示,估计量用Θ表示;
估计值:估计参数时计算出来的统计量的具体值。
用样本的估计量的某个取值直接作为总体参数的估计值,例如:用样本均值直接作为总体均值的估计;用两个样本均值之差直接作为总体均值之差的估计;
无法给出估计值接近总体参数程度的信息,由于样本是随机的,抽出一个具体的样本得到的估计值很可能不同于总体真值;
一个点估计量的可靠性是由它的抽样标准误差来衡量的,这表明一个具体的点估计值无法给出估计的可靠性的度量
C:区间估计
在点估计的基础上,给出总体参数估计的一个估计区间,该区间由样本统计量加减估计误差而得到;
根据样本统计量的抽样分布能够对样本统计量与总体参数的接近程度给出一个概率度量,比如,某班级平均分数在75~85之间,置信水平是95%
D:置信水平
将构造置信区间的步骤重复很多次,置信区间包含总体参数真值的次数所占的比例,也称置信度表示为 (1 –α)% ,为是总体参数未在区间内的比例;?
常用的置信水平值有 99%, 95%, 90%;
相应的α为0.01,0.05,0.10
E:置信区间
由样本估计量构造出的总体参数在一定置信水平下的估计区间;
统计学家在某种程度上确信这个区间会包含真正的总体参数,所以给它取名为置信区间;
如果用某种方法构造的所有区间中有95%的区间包含总体参数的真值,5%的区间不包含总体参数的真值,那么,用该方法构造的区间称为置信水平为95%的置信区间。同样,其他置信水平的区间也可以用类似的方式进行表述;
总体参数的真值是固定的,而用样本构造的区间则是不固定的,因此置信区间是一个随机区间,它会因样本的不同而变化,而且不是所有的区间都包含总体参数;
实际估计时往往只抽取一个样本,此时所构造的是与该样本相联系的一定置信水平(比如95%)下的置信区间。我们只能希望这个区间是大量包含总体参数真值的区间中的一个,但它也可能是少数几个不包含参数真值的区间中的一个;
当抽取了一个具体的样本,用该样本所构造的区间是一个特定的常数区间,我们无法知道这个样本所产生的区间是否包含总体参数的真值,因为它可能是包含总体均值的区间中的一个,也可能是未包含总体均值的那一个;
一个特定的区间总是“包含”或“绝对不包含”参数的真值,不存在“以多大的概率包含总体参数”的问题;
置信水平只是告诉我们在多次估计得到的区间中大概有多少个区间包含了参数的真值,而不是针对所抽取的这个样本所构建的区间而言的。
F:评价估计量的标准
无偏性:估计量抽样分布的数学期望等于被估计的总体参数;
有效性:对同一总体参数的两个无偏点估计量,有更小标准差的估计量更有效;
一致性:随着样本量的增大,估计量的值越来越接近被估计的总体参数
8.& 假设检验
(1)假设检验的原理
先对总体的参数(或分布形式)提出某种假设,然后利用样本信息判断假设是否成立的统计方法;
逻辑上运用反证法,统计上依据小概率原理;
小概率是在一次试验中,一个几乎不可能发生的事件发生的概率;
在一次试验中小概率事件一旦发生,我们就有理由拒绝原假设
(2)原假设与备择假设
又称“0假设”,研究者想收集证据予以反对的假设,用H0表示;
所表达的含义总是指参数没有变化或变量之间没有关系;
最初被假设是成立的,之后根据样本数据确定是否有足够的证据拒绝它;
总是有符号=,≤或≥;??
H0 :μ= 某一数值;
H0 :μ≤ 某一数值;
H0 :μ≥ 某一数值;
例如, H0 :μ=10cm
B:备择假设
也称“研究假设”,研究者想收集证据予以支持的假设,用H1或Ha表示;
所表达的含义是总体参数发生了变化或变量之间有某种关系;
备择假设通常用于表达研究者自己倾向于支持的看法,然后就是想办法收集证据拒绝原假设,以支持备择假设;
总是有符号≠,&或&; ?
H1 :μ≠某一数值;
H1 :μ& 某一数值;
H1 :μ& 某一数值
(3)双侧检验与单侧检验
备择假设没有特定的方向性,并含有符号“≠”的假设检验,称为双侧检验或双尾检验(two-tailed test);
备择假设具有特定的方向性,并含有符号“&”或“&”的假设检验,称为单侧检验或单尾检验(one-tailed test);
备择假设的方向为“&”,称为左侧检验;
备择假设的方向为“&”,称为右侧检验;
(4)根据P值做出决策
如果原假设为真,所得到的样本结果会像实际观测结果那么极端或更极端的概率;
P值告诉我们:如果原假设是正确的话,我们得到得到目前这个样本数据的可能性有多大,如果这个可能性很小,就应该拒绝原假设;&
被称为观察到的(或实测的)显著性水平;
决策规则:若p值&α, 拒绝 H0;
双侧检验的P值如下:单侧检验的P值如下图的原理一样
三、&&&&&& SPSS分析的整体的思路
1.& 数据的获取
我们进行分析的数据主要有两种,一种是二手数据,也就是以其他的形式存在的数据;另一种是新数据,主要是以问卷存在的数据,所以,数据的获取就涉及到两部分,一部分是外部数据的导入,另一种是问卷数据的录入。
2.& 数据的处理
将数据获取之后,首先要进行的是数据的处理,主要是重复值、缺失值、数据的验证、加权、选择个案、重组、转置等
3.& 数据的预分析
数据处理好之后,在建模之前需要进行的是数据的预处理,数据的预处理是进行其他统计分析的基础和前提。通过基本统计方法的学习,可以对要分析数据的总体特征有比较准确的把握,从而有助于选择其他更为深入的统计分析方法,主要是描述统计分析、探索、交叉表等。
4.& 模型的建立
根据预分析里面了解到的数据的结构以及业务的要求可以建立一些相应的模型,比如,需要对客户画像可以进行聚类,需要对销售量进行预测可以用回归等。
5.& 报告的攒写
根据前面的数据分析的结果,和对业务目标理解写成一份相关的报告,并给出相关的建议。
&&&&&&&&&&&&&&&&
1.各种GUI(图形用户界面)辅助编程
Rstudio:R语言综合开发环境;
Rattle:数据挖掘
R Commander:统计分析
3.工作空间(workspace):R的当前工作环境,用于存储用户定义的对象。
ls():列出工作空间中的对象
rm(objectlist):移除一个或多个对象;
save(objectlist,file="myfile")保存对象object到文件"myfile";
save.image("myfile"):保存工作空间到文件myfile.R
load("myfile"):读取工作空间myfile.Rdata到当前会话。
&sink("hongqianjin",append=false)
sink()//结束
(1).源文件没有则创建,(2)append=Flase,覆盖原来文件,注意原来文件全部删除,一行都不留。
7.mean() 均值
cor() &相关系数
options()显示或设置当前选项
runif()随机数
hist() 数据直方图
3.高级编程
1.有两种基本的数据类型:原子向量和泛型向量。2.attr()函数允许你创建任意属性并将其与对象相关联。3.通过new.env()函数创建一个新的环境并通过assign()函数在环境中创建任务。4.对象的值可以通过get()函数从环境中得到。5.parent.env()函数展示了父环境。6.trim(p)函数返回一个函数,即从矢量中修剪掉高低值得p%7.system.time()函数可以用于确定CPU的数量和运行该函数所需的真实时间8.内部调试函数(1)debug 标记函数进行调试(2)undebug() 取消标记函数进行调试(3)browser() 允许单步通过函数的执行(4)trace() 修改函数以允许暂时插入调试代码(5)untrace() 取消追踪并删除临时代码9.mad()函数计算一个数值向量的中位数绝对偏差
&4.RStdio运行脚本
& setwd("C:/Users/lx/Desktop")//工作空间调整到sourcetest.R中& source("sourcetest.R")
1.模板文件(example.Rmd)是一个纯文本文档,包含以下三个部分(1)报告文字:所有解释性的语句和文字(2)格式化语法:控制报告格式化的标签(3)R代码:要运行的R语法这个模板文件被作为参数传递到rmarkdown包的render()函数中,然后创建出一个网页文件example.html。此网页包含了报告文字和R结果。
2.is.vector(x) 检查x是不是向量
&byrow 是按行进行排列,默认是按列排序
8.数据的输入
##################数据框patientID &- c(1, 2, 3, 4)age &- c(25, 34, 28, 52)diabetes &- c("Type1", "Type2", "Type1", "Type1")status &- c("Poor", "Improved", "Excellent", "Poor")patientdata &- data.frame(patientID, age, diabetes, status, row.names = patientID)patientdata
#################数据框attach()、detach()和with()summary(mtcars$mpg)plot(mtcars$mpg, mtcars$disp)plot(mtcars$mpg, mtcars$wt)
#attach()attach(mtcars)summary(mpg)plot(mpg, disp)plot(mpg, wt)detach(mtcars)
#with()with(mtcars, {stats &- summary(mpg)stats})
###因子diabetes &- c("Type1", "Type2", "Type1", "Type1")diabetes &- factor(diabetes)
status &- c("Poor", "Improved", "Excellent", "Poor")status &- factor(status, ordered=TRUE)status &- factor(status, order=TRUE, levels=c("Poor", "Improved", "Excellent"))###数值型变量,因子编码gender &- c(1,2,1,2,3)gender &- factor(gender, levels = c(1,2), labels = c("Male", "Female"))
###因子实例patientID &- c(1,2,3,4)age &- c(25, 34, 28, 52)diabetes &- c("Type1", "Type2", "Type1", "Type1")status &- c("Poor", "Improved", "Excellent", "Poor")
diabetes &- factor(diabetes)status &- factor(status, order=TRUE)patientdata &- data.frame(patientID, age, diabetes, status)
str(patientdata)
summary(patientdata)
###列表g &- "My First List"h &- c(25, 26, 18, 39)j &- matrix(1:10, nrow = 5)k &- c("one", "two", "three")mylist &- list(title = g, ages = h, j, k)mylist
###数据的输入#使用键盘输入数据mydata &- data.frame(age = numeric(0),gender=character(0), weight=numeric(0))mydata &- edit(mydata)
#从带分隔符的文本文件导入数据grades &- read.table("studentgrades.csv", header=TRUE,row.names="StudentID", sep=",", colClasses=c("character", "character", "character","numeric", "numeric", "numeric"))#加载包RODBClibrary(RODBC)
#连接MySQL数据库channel &- odbcConnect("MySQL", uid="root", pwd="123")
#查看数据库的表sqlTables(channel)
#读取ODBC数据库中的表到数据库中crs &- sqlFetch(channel, "course")
#向ODBC数据库提交一个查询并保存结果至数据框crs_qry &- sqlQuery(channel, "select * from course")
#关闭连接close(channel)
1.主成分分析(PCA)是一种数据降维技巧,它能将大量相关变量转化为一组很少的不相关变量,这些无关变量称为主成分。2.探索性因子分析(EFA)是一系列用来发现一组变量的潜在结构的方法。它通过寻找一组更小的、潜在的或隐藏的结构来解释已观测到的、显示的变量间的关系。3.psych包中有用的因子分析函数principal() 含多种可选的方差旋转方法的主成分分析fa() 可用主轴、最小的残差、加权最小平方或最大似然估计法估计的因子分析fa.parallel() 含平行分析的碎石图factor.plot() 绘制因子分析或主成分分析的结果fa.diagram() 绘制因子分析或主成分的载荷矩阵scree() 因子分析的主成分分析的碎石图
1.广义线性模型扩展了线性模型的框架,它包含了非正态因变量的分析。2.R中可通过glm()函数拟合广义线性模型。函数的基本形式为:glm(formula,family=family(link=function),data=)3.使用predict()函数,可以观察某个预测变量在各个水平时对结果概率的影响。& testdata&- data.frame(rating=mean(Affairs$rating),age=seq(17,57,10),yearsmarried=mean(Affairs$yearsmarried),religiousness=mean(Affairs$religiousness))& testdatarating age yearsmarried religiousness1 3...1164732 3...1164733 3...1164734 3...1164735 3...116473
& testdata$prob&- predict(fit.reduced,newdata=testdata,type="response")& testdatarating age yearsmarried religiousness prob1 3....33508342 3....26153733 3....19929534 3....14887965 3....1094738
1.lattice包中的图类型和响应的函数3D等高线图 contourplot() z~x*y3D水平图 levelplot() z~y*x3D散点图 cloud() z~x*y|A3D线框图 wireframe() z~y*x条形图 barchart() x~A或A~x箱线图 bwplot() x~A或A~x点图 dotplot() ~x|A柱状图 histogram() ~x核密度图 densityplot() ~x|A*B平行坐标曲线图 parallelplot() dataframe散点图 xyplot() y~x|A散点图矩阵 splom() dataframe线框图 stripplot() A~x或x~A
xyplot(mpg~disp|transmission,data=mtcars,scales=list(cex=0.8,col="red"),panel=panel.smoother,xlab="Displacement",ylab="Miles per Gallon"main="uuu"
1.模板文件(example.Rmd)是一个纯文本文档,包含以下三个部分(1)报告文字:所有解释性的语句和文字(2)格式化语法:控制报告格式化的标签(3)R代码:要运行的R语法这个模板文件被作为参数传递到rmarkdown包的render()函数中,然后创建出一个网页文件example.html。此网页包含了报告文字和R结果。
1.主成分分析(PCA)是一种数据降维技巧,它能将大量相关变量转化为一组很少的不相关变量,这些无关变量称为主成分。2.探索性因子分析(EFA)是一系列用来发现一组变量的潜在结构的方法。它通过寻找一组更小的、潜在的或隐藏的结构来解释已观测到的、显示的变量间的关系。3.psych包中有用的因子分析函数principal() 含多种可选的方差旋转方法的主成分分析fa() 可用主轴、最小的残差、加权最小平方或最大似然估计法估计的因子分析fa.parallel() 含平行分析的碎石图factor.plot() 绘制因子分析或主成分分析的结果fa.diagram() 绘制因子分析或主成分的载荷矩阵scree() 因子分析的主成分分析的碎石图
4.主成分分析:Kaiser-Harris准则建议保留特征值大于1 的主成分,特征值小于1的成分所解释的方差比包含在单个变量中的方差更少。5.探索性因子分析:Kaiser—Haris准则的特征值大于0,而不是大于1.
###加载RODBClibrary(RODBC)
安装mysql驱动,并在管理工具中配置
###连接RMySQL数据库channel &- odbcConnect("RODBC", uid = "root", pwd = "123456")
###查看数据库的表sqlTables(channel)
###读取ODBC数据库中表到Rorderdetail &- sqlFetch(channel, "orderdetail")
###向ODBC数据库提交查询orderdetail_qry &- sqlQuery(channel, "select * from orderdetail where productNo = 'P'")avg_quantity &- sqlQuery(channel, "select *, avg(quantity) from orderdetailgroup by productNo")###关闭连接close(channel)
##################数据框patientID &- c(1, 2, 3, 4)age &- c(25, 34, 28, 52)diabetes &- c("Type1", "Type2", "Type1", "Type1")status &- c("Poor", "Improved", "Excellent", "Poor")patientdata &- data.frame(patientID, age, diabetes, status, row.names = patientID)patientdata
#################数据框attach()、detach()和with()summary(mtcars$mpg)plot(mtcars$mpg, mtcars$disp)plot(mtcars$mpg, mtcars$wt)
#attach()attach(mtcars)summary(mpg)plot(mpg, disp)plot(mpg, wt)detach(mtcars)
#with()with(mtcars, {stats &- summary(mpg)stats})
###因子diabetes &- c("Type1", "Type2", "Type1", "Type1")diabetes &- factor(diabetes)
status &- c("Poor", "Improved", "Excellent", "Poor")status &- factor(status, ordered=TRUE)status &- factor(status, order=TRUE, levels=c("Poor", "Improved", "Excellent"))###数值型变量,因子编码gender &- c(1,2,1,2,3)gender &- factor(gender, levels = c(1,2), labels = c("Male", "Female"))
###因子实例patientID &- c(1,2,3,4)age &- c(25, 34, 28, 52)diabetes &- c("Type1", "Type2", "Type1", "Type1")status &- c("Poor", "Improved", "Excellent", "Poor")
diabetes &- factor(diabetes)status &- factor(status, order=TRUE)patientdata &- data.frame(patientID, age, diabetes, status)
str(patientdata)
summary(patientdata)
###列表g &- "My First List"h &- c(25, 26, 18, 39)j &- matrix(1:10, nrow = 5)k &- c("one", "two", "three")mylist &- list(title = g, ages = h, j, k)mylist
###数据的输入#使用键盘输入数据mydata &- data.frame(age = numeric(0),gender=character(0), weight=numeric(0))mydata &- edit(mydata)
#从带分隔符的文本文件导入数据grades &- read.table("studentgrades.csv", header=TRUE,row.names="StudentID", sep=",", colClasses=c("character", "character", "character","numeric", "numeric", "numeric"))#加载包RODBClibrary(RODBC)
#连接MySQL数据库channel &- odbcConnect("MySQL", uid="root", pwd="123")
#查看数据库的表sqlTables(channel)
#读取ODBC数据库中的表到数据库中crs &- sqlFetch(channel, "course")
#向ODBC数据库提交一个查询并保存结果至数据框crs_qry &- sqlQuery(channel, "select * from course")
#关闭连接close(channel)
#####RMySQLlibrary(RMySQL)# 创建MySQL数据库的连接
con &- dbConnect(MySQL(), host = "127.0.0.1", dbname = "mysql",username = "root", password = "123", port = 3308)# 获取连接信息summary(con)
dbInfo &- dbGetInfo(con) #返回数据框信息的列表dbInfo[["host"]]dbInfo[[1]]dbInfo $ host# 查看database下的所有表dbListTables(con)
#删除数据库中的表格dbRemoveTable(con, "fruits")
###写数据库表fruits &- data.frame(id = 1:5, name = c("apple", "banana", "pear", "corn", "watermelon"),price = c(8.8, 4.98, 7.8, 6, 2.1),status = c("none", "discount", "none", "sell out", "wholesale"))dw &- dbWriteTable(con, "fruits", fruits)
###从数据库读取表fruitdb &- dbReadTable(con, "fruits")
dbSendQuery(con, 'SET NAMES utf8')
Encoding(fruitdb) &- "UTF-8"
###写数据表,覆盖追加testA &- data.frame(id = 1: 6, e = c("a", "b", "c", "d", "e", "f"))testB &- data.frame(id = 7:13,e = c("g", "h", "i", "j", "k", "l", "m"))dbWriteTable(con, "test", testA, row.names = F)test1 &- dbReadTable(con, "test")
dbWriteTable(con, "test", testB, append = T, row.names = F)dbReadTable(con, "test")
##覆盖写testBdbWriteTable(con, "test", testB, overwrite = TRUE)
###dbGetQuery() 和 dbSendQuery()两种方法dbGetQuery(con, "select * from fruits limit 3")
#dbSendQuery()res &- dbSendQuery(con, "select * from fruits")data &- dbFetch(res, n = 2)dbClearResult(res)
dbDisconnect(con)
# 用SQL语句批量查询
con &- dbConnect(MySQL(),host="127.0.0.1",dbname="mysql",username="root", password="123", port = 3308,client.flag= CLIENT_MULTI_STATEMENTS) #client.flag
sql &- "select * select * from test"res1 &- dbSendQuery(con, sql)
dbFetch(res1, n = 6)
if(dbMoreResults(con)) {res2 &- dbNextResult(con)dbFetch(res2, n = -1) }
dbClearResult(res1)dbClearResult(res2)
5.数据的排序
6.数据集的合并
1.决策树是数据挖掘领域中的常用模型。其基本思想是对预测变量进行二元分离,从而构造一棵可用于预测新样本单元所属类别的树。2.R中的rpart包支持rpart()函数构造决策树,prune()函数对决策树进行剪枝。3.在完整树的基础上,prune()函数根据复杂度参数减掉最不重要的枝,从而将树的大小控制在理想的范围内。4.rpart.plot包中的prp()函数可用于画出最终决策树。5.随机森林是一种组成式的有监督学习方法。随机森林的算法涉及对样本单元和变量进行抽样,从而生成大量决策树。对每个样本单元来说,所有决策树依次对其进行分类,所有决策树预测类别中的众数类别即为随机森林所预测的这一样本单元的类别。6.randomForest包根据传统决策树生成随机森林,而party包中的cforest()函数则可基于条件推断树生成随机森林。7.支持向量机(SVM)是一类可用于分类和回归的有监督机器学习模型。其流行归功于两个方面:一方面,它们可输出较准确的预测结果;另一方面,模型基于较优雅的数学理论。8.SVM可以通过R中kernlab包的ksvm()函数和e1071包中的svm()函数实现。
8.处理缺失数据的高级方法
1.缺失数据分为三类:(1)完全随机缺失(2)随机缺失(3)非随机缺失2.函数is.na() is.nan() 和 is.infinite()可分别用来识别缺失值、不可能值和无穷值3.三种流行的缺失值处理方法:推理法、行删除法和多重插插补
# 创建leadership数据框manager &- c(1, 2, 3, 4, 5)date &- c("10/24/08", "10/28/08", "10/1/08", "10/12/08", "5/1/09")country &- c("US", "US", "UK", "UK", "UK")gender &- c("M", "F", "F", "M", "F")age &- c(32, 45, 25, 39, 99)q1 &- c(5, 3, 3, 3, 2)q2 &- c(4, 5, 5, 3, 2)q3 &- c(5, 2, 5, 4, 1)q4 &- c(5, 5, 5, NA, 2)q5 &- c(5, 5, 2, NA, 1)
leadership &- data.frame(manager, date, country, gender, age,q1, q2, q3, q4, q5, stringsAsFactors=FALSE)
### 创建新变量mydata &- data.frame(x1 = c(2,2,6,4), x2 = c(3,4,2,8))mydata$sumx &- mydata$x1 + mydata$x2mydata$meanx &- (mydata$x1 + mydata$x2)/2
attach(mydata)mydata$sumx &- x1 + x2mydata$meanx &- (x1 + x2)/2detach(mydata)
mydata &- transform(mydata, sumx = x1 + x2, meanx = (x1 + x2)/2)
###变量的重编码leadership$age[leadership$age == 99] &- NA
leadership$agecat &- NA
leadership$agecat[leadership$age & 75] &- "Elder"leadership$agecat[leadership$age &= 55 & leadership$age &= 75] &- "Middle Aged"leadership$agecat[leadership$age & 55] &- "Young"
###变量的重命名#方式1fix(leadership)
#方式2names(leadership)names(leadership)[2] &- "testDate"names(leadership)[6:10] &- c("item1", "item2", "item3", "item4", "item5")
#方式3install.packages("plyr")library(plyr)leadership &- rename(leadership, c(manager="managerID"))###缺失值y &- c(1, 2, 3, NA)is.na(y)
#在分析中排除缺失值x &- c(1, 2, NA, 3)z &- sum(x)y &- sum(x, na.rm = TRUE)leadership
newdata &- na.omit(leadership)newdata
###日期值mydates &- as.Date(c("", ""))
strDates &- c("01/05/1965", "08/16/1975")dates &- as.Date(strDates, "%m/%d/%Y")
myformat &- "%m/%d/%y"leadership$testDate &- as.Date(leadership$testDate, myformat)
Sys.Date()date()
today &- Sys.Date()format(today, format="%B %d %Y")
format(today, format="%A")
#日期运算startdate &- as.Date("")enddate &- as.Date("")days &- enddate - startdate
#difftime()计算时间间隔today &- Sys.Date()dob &- as.Date("")difftime(today, dob, units="weeks")
#类型转换a &- c(1,2,3)ais.numeric(a)is.vector(a)
a &- as.character(a)a
is.numeric(a)is.vector(a)is.character(a)
###数据排序newdata &- leadership[order(leadership$age),]
attach(leadership)newdata &- leadership[order(gender, age),]detach(leadership)
attach(leadership)newdata &- leadership[order(gender, -age),]detach(leadership)
###merge## use character columns of names to get sensible sort orderauthors &- data.frame(surname = I(c("Tukey", "Venables", "Tierney", "Ripley", "McNeil")),nationality = c("US", "Australia", "US", "UK", "Australia"),deceased = c("yes", rep("no", 4)))books &- data.frame(name = I(c("Tukey", "Venables", "Tierney","Ripley", "Ripley", "McNeil", "R Core")),title = c("Exploratory Data Analysis","Modern Applied Statistics ...","LISP-STAT","Spatial Statistics", "Stochastic Simulation","Interactive Data Analysis","An Introduction to R"),other.author = c(NA, "Ripley", NA, NA, NA, NA,"Venables & Smith"))
m1 &- merge(authors, books, by.x = "surname", by.y = "name")
###数据框子集# dataframe[row indices, column indices]
# 列子集# 两种方式:第一种是列下标,第二种方式是列名称
# 删除数据框的列# 三种方式# 第一种方式:逻辑向量leadership[, !names(leadership) %in% c("q3", "q4")]
# 第二种方式:dataframe $ colname &- NULL
# 第三种方式:dataframe[, c(-列下标)]leadership[, -which(names(leadership) == "q3")]
leadership[, -which(names(leadership) %in% c("q3", "q4"))]
#####使用sqldf()函数a &- sqldf("select (q1 + q2 + q3 + q4 + q5)/5 from leadership")leadership $ averge &- a[[1]]View(leadership)
sqldf("select gender, avg(age) from leadership group by gender")
#######数值和字符处理函数###数学函数abs(x)
ceiling(x)
trunc(x) 获取x中的整数部分
round(x,digits = n) x舍入到指定位的小数
signif(x, digits = n) 舍入x为指定的有效数字位数
log(x, base = n) 对x取以n为底的对数
log(x) 为自然对数log10(x) 为常用对数
exp(x) 指数函数
###统计函数mean() mean(c(1,2,3,4))
median() median(c(1,2,3,4))
sd() sd(c(1, 2, 3, 4))
var() var(c(1,2,3,4))
mad() (median absolute deviation)mad(c(1,2,3,4))quantile(x, probs) 求分位数quantile(x, c(.3, .85))
range()range(c(1,2,3,4))
diff(x, lag = n) 滞后差分x &- c(1, 5, 23, 29)diff(x)
min(c(1, 2, 3, 4))
max(c(1, 2, 3, 4))
#scale()对矩阵或数据框的指定列进行均值scale(x, center = 1, scale = 1)
#实例x &- 1:8
mean(x)sd(x)
n &- length(x)meanx &- sum(x) / ncss &- sum((x - meanx)^2)sdx &- sqrt(css / (n - 1))
###字符处理函数nchar(x) #计算x中的字符数量x &- c("ab", "cde", "fghij")length(x)nchar(x[3])
substr(x, start, stop) 提取或替换x &- "abcdef"substr(x, 2, 4)substr(x, 2, 4) &- "222"
# 在x中搜索模式,fixed = TRUE, 则pattern为一个文本字符串global regular expression printgrep(pattern, x, ignore.case = FALSE, fixed = FALSE)
grep("A", c("b", "A", "c"), fixed = TRUE)
# 在x中搜索pattern,并以文本replacement将其替换# fixed = FALSE,pattern为一个正则表达式
sub(pattern, replacement, x, ignore.case = FALSE, fixed = FALSE)sub("\\s", ".", "Hello There")
# 按split分割x, 返回字符向量strsplit(x, split, fixed = FALSE)
y &- strsplit("abc", "")
# 连接字符串,连接符为sep# 可以连接多个向量paste(..., sep = "")
paste("x", 1:3, sep = "")paste("x", 1:3, sep = "M")paste("Today is", date())
# 大写转换toupper(x)toupper("abc")
# 小写转换tolower(x)tolower("ABC")
############其他实用函数length()x &- c(2, 5, 6, 9)length(x)
###seq(from, to, y)生成一个序列indices &- seq(1, 10, 2)
#rep(x, n) 将x重复n次y &- rep(1:3, 2)
#连接...对象,并输出到屏幕cat(...)
name &- "Bob"cat("Hello", name, "\b.\n")
###cat 和 paste 的区别x &- c("x", "x", "x")y &- c("a", "b", "c")
paste(x, y, sep = "") #向量元素依次连接cat(x, y) #向量间连接
x &- c("x", "y")y &- c("a", "b", "c")
paste(x, y, sep="") ###以向量形式保存结果cat(x, y) ###保存结果为空,不保存连接结果,仅输出
mydata &- matrix(rnorm(30), nrow = 6)mydata
apply(mydata, 1, mean)
apply(mydata, 2, mean)
apply(mydata, 2, mean, trim = 0.2)
###控制流——重复和循环for (i in 1:10) print("Hello")
i &- 10while(i & 0) {print("Hello");i &- i - 1;}
### 条件执行grade &- c("A", "A", "B", "B", "C")
if (is.character(grade)) {grade &- as.factor(grade)}
if (! is.factor(grade)) {grade &- as.factor(grade)} else {print("Grade already is a factor")}
#ifelse()score &- 0.6
score &- 0.3ifelse(score & 0.5, print("Passed"), print("Failed"))
outcome &- ifelse(score & 0.5, "Passed", "Failed")
###switch示例feelings &- c("sad", "afraid")
for (i in feelings) {print(switch(i, happy = "I am glad you are happy",afraid = "There is nothing to fear",sad = "Cheer up",angry = "Calm down now"))}
### 用户自编函数# mystats(): 描述性统计量计算函数mystats &- function(x, parametric = TRUE, print = FALSE) {
if (parametric) {center &- mean(x);spread &- sd(x);} else {center &- median(x);spread &- mad(x);}if (print & parametric) {cat("Mean=", center, "\n", "SD=", spread, "\n")} else if (print & !parametric) {cat("Median=", center, "\n", "MAD=", spread, "\n")}result &- list(center = center, spread = spread)return(result)}
set.seed(1234)x &- rnorm(500)y &- mystats(x)y $ centery $ spread
y &- mystats(x, parametric = FALSE, print = TRUE)
mydate &- function(type = "long") {switch(type, long = format(Sys.time(), "%A %B %d %Y"),short = format(Sys.time(), "%m-%d-%d"),cat(type, "is not a recognized type\n"))}
mydate("long")
mydate("short")
mydate("medium")
#####矩阵的转置cars &- mtcars[1:5, 1:4]cars
###整合数据options(digits = 3)attach(mtcars)aggdata &- aggregate(mtcars, by = list(Group.cyl = cyl, Group.gear = gear), FUN = mean, na.rm = TRUE)### reshape2包install.packages("reshape2")
ID &- c(1, 1, 2, 2)Time &- c(1, 2, 1, 2)X1 &- c(5, 3, 6, 2)X2 &- c(6, 5, 1, 4)
mydata &- data.frame(ID = ID, Time = Time, X1 = X1, X2 = X2)
library(reshape2)md &- melt(mydata, id = c("ID", "Time"))
dcast(md, ID ~ variable, mean)dcast(md, Time ~ variable, mean)dcast(md, ID ~ Time, mean)
dcast(md, ID + Time ~ variable)dcast(md, ID + variable ~ Time)
dcast(md, ID ~ variable + Time)
###实例options(digits = 2)
Student &- c("John Davis", "Angela Williams", "Bullwinkle Moose","David Jones", "Janice Markhammer", "Cheryl Cushing","Reuven Ytzrhak", "Greg Knox", "Joel England","Mary Rayburn")Math &- c(502, 600, 412, 358, 495, 512, 410, 625, 573, 522)Science &- c(95, 99, 80, 82, 75, 85, 80, 95, 89, 86)English &- c(25, 22, 18, 15, 20, 28, 15, 30, 27, 18)
roster &- data.frame(Student, Math, Science, English, stringsAsFactors = FALSE)
### 计算综合得分 z &- scale(roster[,2:4])score &- apply(z, 1, mean)roster &- cbind(roster, score)
### 对学生评分roster $ grade &- NAy &- quantile(score, c(.8, .6, .4, .2))roster $ grade[score &= y[1]] &- "A"roster $ grade[score & y[1] & score &= y[2]] &- "B"roster $ grade[score & y[2] & score &= y[3]] &- "C"roster $ grade[score & y[3] & score &= y[4]] &- "D"roster $ grade[score & y[4]] &- "F"
name &- strsplit((roster$Student), " ")
Lastname &- sapply(name, "[", 2)Firstname &- sapply(name, "[", 1)roster &- cbind(Firstname, Lastname, roster[, -1])
roster &- roster[order(Lastname, Firstname),]
1.R语言的各种分布函数
rnorm(n,mean=0,sd=1)高斯(正态)
rexp(n,rate=1)指数
rgamma(n,shape,scale=1)γ分布
rpois(n,lambda)Poisson分布
rweibull(n,shape,scale=1)Weibull分布
rcauchy(n,location=0,scale=1)Cauchy分布
rbeta(n,shape1,shape2)β分布
rt(n,df)t分布
rf(n,df1,df2) F分布
rchisq(n,df)Χ2 分布
rbinom(n,size,prob)二项
rgeom(n,prob)几何
rhyper(nn,m,n,k)超几何
rlogis(n,location=0,scale=1) logistic分布
rlnorm(n,meanlog=0,sdlog=1)对数正态
rnbinom(n,size,prob)负二项分布
runif(n,min=0,max=1)均匀分布
rwilcox(nn,m,n) ,rsignrnak(nn,n) Wilcoxon分布
1.R语言 prod() 连乘
&sort() 排序
rev() 倒序
seq() 按某种规律产生数列
t() 矩阵转置
diag()求矩阵对角线,求向量的为对角线矩阵,求标量为劫数的向量
& x&-rnorm(5)& x[1] -0....9396918[5]
创建一个名为x的向量,它包含5个来自标准正态分布的随机偏差。
2.mean() &均值&
sd()标准差
cor() 相关差
demo()图形实例
1.批处理R CMD BATCH options infile outfile
2.lm()回归summary()显示分析结果统计概要cooks.distance() 计算和保存影响度量统计量plot()绘图predict()预测
3.使用一个新的包(vcd 一个用于可视化类别数据的包)& help.start()如果什么都不发生的话,你应该自己打开‘http://127.0.0.1:18928/doc/html/index.html’& install.packages("vcd")& help(package="vcd")& library(vcd)载入需要的程辑包:grid& library(grid)& library(vcd)& help("Arthritis")& Arthritis& example("Arthritis")& q()
创建数据集
1.R中有许多用于存储数据的结构,包括标量、响铃、数组、数据框和列表2.R可以处理的数据类型(模式)包括数值型、字符型、逻辑型、复数型(虚数)和原生型(字节)3.R将实例标识符称为rownames(行名),将类别型(包括名义型和有序型)变量称为因子4.R拥有许多用于存储数据的对象类型,包括标量、向量、矩阵、数组、数据框和列表5.向量c:当个向量中的数据必须拥有相同的类型或模式(数值型、字符型、逻辑型)。同一向量中无法混杂不同模式的数据。6.矩阵matrix:每个元素都拥有相同的模式,默认是按列填充7.数组array:数组中的数据也只能拥有一种模式8.数据框data.frame:每一列数据的模式必须唯一9.attach()可将数据框添加到R的搜索路径中10.detach()将数据框中探索路径中移除。11.R中的函数edit()会自动调用一个允许手动输入数据的文本编辑器。 mydata&- data.frame(age=numeric(0),gender=character(0),weight=numeric(0)) mydata&- edit(mydata)###简便等价写法是fix(mydata)函数edit()事实上是在对象的一个副本上进行操作的。如不保存则丢失!13.read.table()函数用于处理字符串并返回数据框& mydatatatxt&- "age gender weight 12 m 177
120"& mydata&- read.table(header=TRUE,text=mydatatatxt)14.read.table()带从分隔符的文本文件中导入数据
15.read.xlsx()导入Excel数据(library(xlsx))16.导入spss数据read.spss()
library(foreign)spss.get()
library(Hmisc)spss.get()是对read.spss()的一个封装
17.导入SASread.ssd()
library(foreign)sas.get()
library(Hmisc)read.sas7dbat()
library(sas7dbat)
18.函数factor()可为类别型变量创建值标签
19.处理数据对象的使用函数length()
显示对象中元素/成分的数量dim()
显示某个对象的维度str()
显示某个对象的结构class()
显示某个对象的类或类型mode()
显示某个对象的模式names()
显示某对象中各成分的名称c()
将对象合并入一个向量cbind()
按列合并对象rbind()
按行合并对象object()
输出某个对象head()
列出某个对象的开始部分tail()
列出某个对象的最后部分ls()
显示当前的对象列表rm()
删除一个或更多个对象newobject&- edit()
编辑对象并另存为newobjectfix()
直接编辑对象
dose &- c(20, 30, 40, 45, 60)drugA &- c(16, 20, 27, 40, 60)drugB &- c(15, 18, 25, 31, 40)
plot(dose, drugA, type = "b")
###图形参数opar &- par(no.readonly = TRUE)
###复制当前的图形参数设置
par(lty = 2, pch = 17)
###设置参数plot(dose, drugA, type = "b") ###根据设置的参数绘制图形
par(opar) ###还原原始设置
###图形参数 —— 符号和线条plot(dose, drugA, type = "b", lty = 3, lwd = 3, pch = 15, cex = 2)
###添加文本、自定义坐标轴和图例###函数自带参数设置选项plot(dose, drugA, type = "b", col = "red", lty = 2, pch = 2, lwd = 2, main = "Clinical Trials for Drug A", sub = "This is hypothetical data", xlab = "Dosage", ylab = "Drug Response", xlim = c(0, 60), ylim = c(0, 70))
annotation ###自定义坐标轴示例windows()x &- 1:10y &- xz &- 10/x
opar &- par(no.readonly = TRUE)
###增加边界大小par(mar = c(5, 4, 4, 8) + 0.1)
###绘制x对y的图形plot(x, y, type = "b",
pch = 21, col = "red",
yaxt = "n", lty = 3, ann = FALSE) ###添加x对1/x的直线lines(x, z, type = "b", pch =22, col = "blue", lty =2)
###自定义坐标轴axis(2, at = x, labels = x, col.axis = "red", las = 2)
axis(4, at = z, labels = round(z, digits =2), col.axis = "blue", las = 0, cex.axis = 0.7, tck = -.01) mtext("y=1/x", side = 4, line = 3,
cex.lab = 1, las =2, col = "blue") title("An Example of Creative Axes",
xlab = "X values",
ylab = "Y = X")
###图例windows()dose &- c(20, 30, 40, 45, 60)drugA &- c(16, 20, 27, 40, 60)drugB &- c(15, 18, 25, 31, 40)
opar &- par(no.readonly = TRUE)
par(lwd = 2, cex = 1.5, font.lab =2)
plot(dose, drugA, type = "b", pch = 15, lty =1, col = "red", ylim = c(0, 60), main = "Drug A vs. Drug B", xlab = "Drug Dosage", ylab = "Drug Response") lines(dose, drugB, type = "b",
pch = 17, lty = 2, col = "blue")
### 添加图例legend(locator(1), title = "Drug Type",
c("A", "B"), lty = c(1, 2), pch = c(15, 17),
col = c("red", "blue"))
### 文本标注attach(mtcars)plot(wt, mpg,
main = "Mileage vs. Car Weight", xlab = "Weight", ylab = "Mileage", pch = 18, col = "blue") text(wt, mpg, row.names(mtcars), cex = 0.6, pos = 4, col = "red") detach(mtcars)
### 展示不同字体族的代码opar &- par(no.readonly = TRUE)par(cex = 1.5)plot(1:7, 1:7, type = "n")
text(3, 3, "Example of default text")text(4, 4, family = "mono", "Example of mono-spaced text")text(5, 5, family = "serif", "Example of serif text")
attach(mtcars)opar &- par(no.readonly = TRUE)par(mfrow = c(2,2))
plot(wt,mpg, main = "Scatterplot of wt vs. mpg")plot(wt, disp, main = "Scatterplot of wt vs. disp")hist(wt, main = "Histogram of wt")
boxplot(wt, main = "Boxplot of wt")
detach(mtcars)
###三行一列attach(mtcars)opar &- par(no.readonly = TRUE)par(mfrow = c(3, 1))
hist(wt)hist(mpg)hist(disp)
detach(mtcars)
###函数layout()attach()
layout(matrix(c(1, 1, 2, 3), 2, 2, byrow = TRUE))hist(wt)hist(mpg)hist(disp)
detach(mtcars)
attach(mtcars)
layout(matrix(c(1, 1, 2, 3), 2, 2, byrow = TRUE),
widths = c(3, 1), heights = c(1, 2))
hist(wt)hist(mpg)hist(disp)
detach(mtcars)
### 图形布局的精细控制windows()opar &- par(no.readonly = TRUE)
par(fig = c(0, 0.8, 0, 0.8))plot(mtcars $ wt, mtcars $ mpg,
xlab = "Miles Per Gallon", ylab = "Car Weight")
par(fig = c(0, 0.8, 0.6, 1), new = TRUE)boxplot(mtcars $ wt, horizontal = TRUE, axes = FALSE)
par(fig = c(0.7, 1, 0, 0.8), new = TRUE)boxplot(mtcars $ mpg, axes = FALSE)
mtext("Enhanced Scatterplot", side = 3,
outer = TRUE, line = -3)
1.par() 指定图形参数选项其中参数no.readonly=TRUE 可以生成一个可以修改的当前参数列表
2.用于指定符号和线条类型的参数pch:指定绘图时使用的符号cex:指定符号的大小lty:指定线条的类型lwd:指定线条的宽度
3.函数rgb()可基于红-绿-蓝三色值生成颜色,hsv()则基于色相-饱和度-亮度值来生成颜色& rgb(1,1,1)[1] "#FFFFFF"& hsv(0,0,1)[1] "#FFFFFF"
4.R用于创建连续型颜色向量的函数:rainbow()、heat.colors()、terrain.colors()、topo.colors()、cm.colors()5.使用函数brewer.pal(n,name)来创建一个颜色值得向量,包(library(RColorBrewer)& library(RColorBrewer)& n&- 7& mycolors&- brewer.pal(n,"Set1")##从Set1调色版中抽取了7种用十六进制表示的颜色并返回一个向量& barplot(rep(1,n),col=mycolors)& aa&-barplot(rep(1,n),col=mycolors)& aa
7.9& mycolors[1] "#E41A1C" "#377EB8" "#4DAF4A" "#984EA3" "#FF7F00" "#FFFF33" "#A65628"
6.font用于指定绘图使用的字体样式。常规=1,粗体=2,斜体=3,粗斜体=4,符号字体(以Adobe符号编码表示)=57.在plot语句或单独的par()语句中添加ann=FALSE来移除某些高级绘图函数已经包含了默认的标题和标签。8.axis():自定义的坐标图las:标签是否平行于(=0)或垂直于(=2)坐标轴tck:刻度线的长度(负值:图形外侧,正直:图形内侧,0表示禁用刻度线,1表示绘制网格线)axes=FALSE 将禁用全部坐标轴。xaxt="n"和yaxt="n" 将分别禁用X轴或y轴(会留下框架,只是去除了刻度)8.lines()语句可以为一幅现有图形添加新的图形元素。9.mtext()用于在图形的边界添加文本10.函数abline()可以用来为图形添加惨嚎线11.函数legend()来添加图例12.text()可向绘图区域内部添加文本(也可以用来标示图形中的点),而mtext()则向图形的四个边界之一添加文本。
13.在R中使用函数par()或layout()可以组合多副图形为一幅总括图形在par()函数中使用图形参数mfrow=c(nrows,ncols)来创建按行填充的图形矩阵,mfcol=c(nrows,nclos)按列填充函数layout()的调用形式为layout(mat),其中mat是一个矩阵,它指定了所要组合的多个图的所在位置。14.绝对宽度(以厘米为单位)可以通过函数lcm()来指定15.par()函数中可以使用图形参数fig=c(x1,y1,x2,y2)将若干图形以任意排布方式组合到单幅图形中。fig=默认会创建一幅图形,所以在添加到一幅现有的图形上时,请设定参数new=TRUE.par(fig=c(0,0.5,0.55,1),new=TRUE)
线性代数:在机器学习中,线性代数随处可见。主成分分析(PCA)、奇异值分解(SVD)、矩阵的特征分解、LU分解、QR分解、对称矩阵、正交化和正交归一化、矩阵的运算、分解、向量空间和范数等,这些都是理解机器学习中所使用的优化方法所必须的。
概率论和统计学:机器学习和统计学并不是很不同的领域。实际上,有人最近将机器学习定义为“在Mac上做统计”。机器学习所需的一些基本统计和概率理论主要有:组合学、概率规则和公理、贝叶斯定理、随机变量、方差和期望、条件和联合分布、标准分布(伯努利分布、二项式分布、多项式分布、均匀分布和高斯分布等)、动差生成函数(Moment Generating Functions)、最大似然估计(MLE)、先验和后验、最大后验估计(MAP)和抽样方法。
多元微积分:一些必要的内容包括微积分、偏导数、向量值函数、方向梯度、Hessian、 Jacobian、Laplacian和Lagragian分布。
算法和优化理论:这对我们理解机器学习算法的计算效率和可拓展性以及怎么利用数据中的稀疏性很重要。需要的知识主要包括:数据结构(二叉树、散列、堆、堆栈等)、动态规划、随机和次线性算法、图论、梯度/随机下降和原始-对偶方法。
其他还包括:复变函数(集合和序列、拓扑结构、度量空间、单值和连续函数、极限等)、信息论(熵、信息增益)、函数空间和流形。
1.依据随机化思想的统计方法:置换检验和自助法2.coin包对于独立性问题提供了一个非常全面的置换检验的框架,而lmPerm包则专门用来做方差分析和回归分析的置换检验。3.置换检验都是使用伪随机数来从所有可能的排列组合总进行抽样(当做近似检验时)。因此,每次检验的结果都所不同。4.在coin包中,类别型变量和序数变量必须分别转化为因子和有序因子。另外,数据要以数据框形式存储。5.相对于传统检验,提供可选置换检验的coin函数
coin函数两样本和K样本置换检验
oneway_test(y~A)含一个分层(区组)因子的两样本和K样本置换检验
oneway_test(y~A|C)Wilcoxon-Mann-Whitney秩和检验
wilcox_test(y~A)Kruskal-Wallis检验
kruskal_test(y~A)Pearson卡方检验
chisq_test(A~B)Cochran-Mantel-Haenszel检验
cmh_test(A~B)线性关联检验
lbl_test(D~E)Spearman检验
spearman_test(y~x)Friedman检验
friedman_test(y~A|C)Wilcoxon符号秩检验
wilcoxsign_test(y1~y2)注:在coin函数中,y和x是数值变量,A和B是分类因子,C是类别型区组变量,D和E是有序因子,y1和y2是匹配的数值变量
6.如变量都是有序8型,可使用lbl_test()函数(线性关联检验)来检验是否存在线性趋势。7.spearman_test()函数提供了两数值变量的独立性置换检验。8.对于两配对组的置换检验,可使用wilcoxsign_test()函数;对于两组时,使用friedman_test()函数。9.independence_test()函数可以从置换角度来思考大部分传统检验,进而在面对无法用传统方法解决的问题时,使用户可以自己构建新的统计检验。
10.lmPerm包可做线性模型的置换检验。
1.数学函数abs()绝对值sqrt()平方根ceiling()不小于x的最小整数floor()不大于x的最大整数trunc()向0的方向截取的x中的整数部分round(x,digits=n)将x舍入为指定的小数signif(x,digits=n)将x舍入为指定的有效数字位数cos(),sin()、tan() 余弦、正弦、正切、acos()、asin()、atan()反余弦、反正弦和正切cosh(x)、sinh(x)、tanh(x)双曲余弦、双曲正弦和双曲正切acosh(x)、asinh(x)、atanh(x)反双曲余弦、反双曲正弦和反双曲正切log(x,base n) 对x取以n为底的对数log(x) 为自然对数log10(x)为常用对数exp(x)指数函数
2.统计函数mean()
平均数median()
中位数sd()
标准差var()
绝对中位差quantile()
求分位数range()
求值域sum()
求和diff()
滞后差分min()
求最小值max()
求最大值scale(x,center=TRUE,scale=TRUE)
为数据对象x按列进行中心化(center=TRUE)或标准化(center=TRUE,scale=TRUE)默认情况下,函数scale()对矩阵或数据框的指定列进行均值为0、标准差为1 的标准化公式scale(mydate)*SD+M (SD为想要的标准差、M为想要的均值)
3.概率分布Beta分布
beta二项分布
binom柯西分布
cauchy(非中心)卡方分布
chisq指数分布
fGamma分布
gamma几何分布
geom超几何分布
hyper对数正态分布
lnormLogistic分布
logis多项分布
multinom负二项分布
nbinom正态分布
norm泊松分布
poisWilcoxon符号秩分布 signrankt分布
unifWeibull分布
weibullWilcoxon秩和分布
wilcox注:如果不指定一个均值和一个标准差,则函数将假设其为标准正态分布(均值为0,标准差为1)。
4.密度函数(dnorm)、分布函数(pnorm)、分位数函数(qnorm)和随机数生成函数(rnorm)5.通过函数set.seed()显示指定这个种子,让结果可以重现6.函数runif()用来生成0到1区间上服从均匀分布的伪随机数。7.MASS包中的mvrnorm()函数可以获取来自给定均值向量和协方差阵的多元正态分布的数据。
8.字符串处理函数nchar(x)
计算x中的最大字符数量substr(x,start,stop)
提取或替换一个字符向量中的子串grep(pattern,x,ignore.case=FALSE,fixed=FALSE)
在x中搜索某种模式,fixed=FALSE,pattern为正则表达式,若fixed=TRUE,则Pattern为一个文本字符串。返回值为匹配的下标。sub(pattern,replacement,x,ignore.case=FALSE,fixed=FALSE) 在x中搜索pattern,并以文本replacement将其替换。strsplit(x,split,fixed=FALSE)
在split处分割字符向量x中的元素,paste(...,sep="")
连接字符串,连接符septoupper()
转换大写tolower
小写转换length()
对象x的长度seq(from,to,by)
生成一个序列rep(x,n)
将x重复n次cut(x,n)
将连续型变量x分割为有着n个水平的因子,使用选项ordered_result=TRUE以创建一个有序型因子pretty(x,n)
创建美观的分割点。cat()
连接...中的对象,并将其输出到屏幕上或者文件上
9.R中提供了一个apply()函数,可将一个任意函数“应用”到矩阵、数组、数据框的任何维度上:apply(x,MARGIN,FUN,...)
x为数据对象,MARGIN为维度,FUN为函数。 在矩阵或数据框中,MARGIN=1表示行,MARGIN=2表示列
10.apply()可把函数应用到数组的某个维度上,而lapply()和sapply()则可将函数应用到列表list上。11.options(digits=2)限定了输出小数点后数字的位数12.函数warning()来生成一条错误提示信息,用message()来生成一条诊断信息,用stop()停止当前表达式的执行并提示错误
13整合于重构函数函数t()即可对一个矩阵或数据进行转置aggregate(x,by,FUN) 在R中使用一个或多个by变量和一个预先定义好的函数来折叠数据
13.reshape2包melt()数据集的融合dcast()函数读取已融合的数据,并用于整合数据的函数将其重塑。
1.abline()函数用来添加最佳拟合的线性直线2.lowess()函数则用来添加一条平滑曲线3.R有两个平滑曲线拟合函数:lowess() 和loess()4.car包中的scatterplot()函数增强了散点图的许多功能。5.pairs()函数可以创建基础的散点图矩阵6.car包中的scatterplotMatrix()函数可以生成散点图矩阵library(car)scatterplotMatrix(~mpg+disp+drat+wt,data=mtcars,sprad=FALSE,smoother.args=list(lty=2))线性和平缓(loess)拟合曲线被默认添加,主对角线处添加了核密度曲线和轴须图spread=FALSE表示不添加展示分散度和对称信息的直线smoother.args=list(lty=2)设定平滑(loess)拟合曲线使用虚线而不是实线
7.smoothScatter()函数可利用核密度估计生成用颜色密度来表示分布的散点图。with(mydata,smoothScatter(x,y))
8.hexbin包中的hexbin()函数将二元变量的封箱放到六边形单元格中library(hexbin)with(mydata,{bin&- hexbin(x,y,xbins=50)
plot(bin,main="Hexagonal Binning with 10000 Observations")})
9.scatterplot3d包中的scatterplot3d()函数绘制三个定量变量的交互关系scatterplot3d(x,y,z)
library(scatterplot3d)attach(mtcars)s3d&- scatterplot3d(wt,disp,mpg,pch=16,highlight.3d=TRUE,type="h",main="qianjin")fit&- lm(mpg~wt+disp)s3d$plane3d(fit)
10.如何总R中导出一个表,和导入一个表& getwd()[1] "C:/Users/lx/Documents"& setwd("C:/Users/lx/Documents")& getwd()[1] "C:/Users/lx/Documents"& write.csv(mtcars,"mtcars")//导出& mtcars&-read.csv("mtcars",header = TRUE)//导入,mtcar放到路径上
11.rgl包中的plot3d() 函数创建可交互的三维散点图plot3d(x,y,z)
12.car包scatter3d()函数可包含各种回归曲面
包library(vcd)1.条形图条形图通过垂直的或水平的条形展示了类别型变量的分布(频数)barplot(height,)height是一个向量或矩阵height矩阵 时 beside=TRUE 分组条形图,beside=FALSE
堆砌条形图names.arg允许指定一个字符向量作为条形的标签名
2.table()函数将其表格化
3.棘状图棘状图对堆砌条形图进行了重缩放,这样每个条形的高度均为1,每一段的高度即表示比例spine()
4.饼图面积之比
pie(x,labels)
包library(plotrix) 宽度之比fan.plot()
6.直方图直方图表述的是连续型变量的分布直方图通过在x轴上将值域分割为一定数量的组,在y轴上显示响应 的频数,展示了连续变量的分布。hist(x)x是一个由数据值组成的数值向量参数freq=FALSE表示根据概率密度,freq=TRUE频数绘制图形breaks用于控制组的数量
7.轴须图(rug &plot&)轴须图是实际数据值得一种一维呈现方式
8.盒型box()
9.核密度图核密度估计是用于估计随机变量概率密度函数的一种非参数方法。从总体上将,核密度图不失为一种用来观察连续型变量分布的有效方法。绘制核密度方法:plot(density(x))核密度图可用于比较组间差距使用sm包中的sm.density.compare()函数可向图形叠加两组或更多的核密度图,使用格式:sm.density.compare(x,factor)核密度图的叠加不失为一种在某个结果变量上跨组比较观测的强大方法。箱线图同样是一项用来可视化分布和组间差异的绝佳图形手段 polygon()函数根据顶点的x和y轴坐标绘制了多边形
10.箱线图箱线图(又称盒须图)通过绘制连续型变量的五数总括,即最小值、下四分位数(25%)、中位数(50%)、上四分位数(75%)以及最大值,描述了连续型变量的分布。箱线图能够显示出可能为离群点(范围正负1.5*IQR以为的值,IQR表示四分位数,即上四分位数于下四分位数的差值)的观测。boxplot()箱线图可以展示单个变量或分组变量。参数varwidth=TRUE将使箱线图的宽度与其样本大小的平方根成正比参数notch=TRUE,可以得到含凹糟的箱线图
11.小提琴图小提琴图是箱线图与核密度图的结合。vioplot包中的vioplot()函数小提琴图基本上时核密度图以镜像方式在箱线图上的叠加。在图中,白点是中位数,黑色盒型范围是下四分位点到上四分位点,细黑线表示须.外部形状即为核密度估计。
12.点图点图提供了一种在简单水平刻度上绘制大量有标签值得方法dotchart(x,labels=)
13.直方图、箱线图、轴须图以及点图可视化连续型变量分布的方式,使用叠加图的核密度图、并列箱线图和分组点图可视化连续型输出变量组间差异的方法
Sub 填充()'' 填充 宏 &'' 快捷键: Ctrl+q'
With Selection.Interior&
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End WithEnd Sub
Sub 填充1()
Selection.Interior .Pattern = xlSolid
Selection.Interior .PatternColorIndex = xlAutomatic
Selection.Interior.Color = 65535
Selection.Interior .TintAndShade = 0
Selection.Interior .PatternTintAndShade = 0
保存有VBA的代码的Excel文件是xlsm格式,否则无法保存代码
Sub 偏移()
ActiveCell.Offset(0, -1) = "洪前进"
With ActiveCell.Offset(0, -1).Font
.Size = 30
End WithEnd Sub
Sub 消息框()MsgBox prompt:="前进", Buttons:=vbYesNo, Title:="qianjin"End Sub
Sub 消息框()'MsgBox prompt:="前进", Buttons:=vbYesNo, Title:="qianjin"
MsgBox "学习VBA", vbOKOnly, "数据挖掘"End Sub
1.通过参数检验(t检验)和非参数检验(Mann-Whitney U检验、Kruskal-Wallis检验)方法研究组间差异2.使用summary()函数来获取描述性统计量,summary()函数提供了最大值、最小值、四分位数和数值型变量的均值,以及因子向量和逻辑型向量的频数统计3.函数fivenum()可返回图基五数总括(最大值、下四分位数、中位数、上四分位数和最大值)4.Hmisc包中的describe()函数可返回变量和观测的数量、缺失值和唯一值得数目、平均值、分位数、以及五个最大的值和五个最小的值。5.pastecs包中有一个名为stat.desc()的函数,它可以计算种类繁多的描述性统计量stat.desc(x,basic=TRUE,desc=TRUE,norm=FALSE,p=0.95)其中的x是一个数据框或时间序列若basic=TRUE(默认值),则计算其中所有值、空值、缺失值的数量、以及最小值、最大值、值域、还有总和若desc=TRUE(默认值),则计算中位数、平均数、平均数的标准误、平均数置信度为95%的3.置信区间、方差、标准差以及变异系数若norm=TRUE,则返回正态分布统计量,包括偏度和峰度(以及它们的统计显著程度)和Shapiro-Wilk正态检验结果。这里使用了p值来计算平均数的置信区间(默认置信度为0.95)
6.psych包也拥有一个名为describe()的函数,它可以计算非缺失值的数量、平均值、标准差、中位数、截尾均值、绝对中位差、最小值、最大值、值域、偏度、峰度和平均值得标准误
7.aggregate()仅允许在每次调用中使用平均数、标准差这样的单返回值函数,它无法一次仅返回若干个统计量。
8.doBy包和psych包提供了分组计算描述性统计量的函数。doBy包中summaryBy()函数的使用格式为:summaryBy(formula,data=dataframe,FUN=function)
9. 使用于创建和处理列链表的函数 table(var1,var2,var3,...,varN)
使用N个类别型变量(因子)创建一个N维列联表xtabs(formula,data)
依据一个公式和一个矩阵或数据框创建一个N维列联表prop.table(table,margins)
依margins定义的边际列表将表中条目表示为分数形式margin.table(table,margins)
依margins定义的边际列表计算表中条目的和addmargins(table,margins)
将概述边margins(默认是求和结果)放入表中ftable(table)
创建一个紧凑的“平铺”式列联表
10.table()函数生成简单的频数统计表prop.table()将频数转化为比例值(prop.table()*100
转化为百分比)
11.使用gmodels包中的CrossTable()函数是创建二维列联表
12.ftable()函数可以输出多维列联表
13.R提供了多种检验类别型变量独立性的方法,卡方独立性检验、Fisher精确性检验、Cochran-Mantel-Haenszel检验
14.卡方独立性检验使用chisq.test()函数对二维表的行变量和列变量进行卡方独立性检验p的值表示从总体中抽取的样本行变量与列变量是相互独立的概率。
15.Fisher精确检验使用fisher.test()函数进行Fisher精确检验。Fisher精确检验的原假设:边界固定的列联表中行和列是相互独立的。使用格式是:fisher.test(mytable) 其中mytable是一个任意行数大于等于2的二维列联表
16.Cochran-Mantel-Haenszel检验mantelhaen.test()函数可用来进行Cochran-Mantel-Haenszel卡方检验,其原假设是,两个名义变量在第三个变量的每一层中都是条件独立的。
17.vcd包中的assocstats()函数可以用来计算二维列联表的phi系数、列联系数和Cramer‘s V系数
18.显著性检验评估了是否存在充分的证据以拒绝变量间相互独立的原假设。
19.相关系数可以用来描述定量变量之间的关系。相关系数的符号(-+)表明关系的方向(正相关或负相关),其值的大小表示关系的强弱程度(完全不相关时为0,完全相关为1)
20.R可以计算多种相关系数,包括Pearson相关系列、Spearman相关系数、Kendall相关系数、偏相关系数、多分格(Polychoric)相关系数和多系列(Polyserial)相关系数。
21.pearson极差相关系数衡量了两个定量变量之间的线性相关程度。Spearman等级相关系数则衡量分级定序变量之间的相关程度。Kendall‘s Tau相关系数也是一种非参数的等级相关变量。cor()函数可以计算Pearson相关系列、Spearman相关系数、Kendall相关系数cov()函数可以用来计算协方差。
22.偏相关是指在控制一个或多个定量变量时,另外两个定量变量之间的相互关系,可以使用ggm包中的pcor()函数计算偏相关系数。计算格式为:pcor(u,s)s为协方差矩阵
23相关性的显著性检验在计算好相关系数以后,如何对它们进行统计显著性检验呢?常用的原假设为变量间不相关(即总体的相关系数为0,独立)可以使用cor.test()函数对当个的Pearson、Spearman和Kendall相关系数进行检验。cor.test()每次只能检验一种相关关系,但psych包中提供的corr.test()函数可以为Pearson、Spearman或Kendall相关计算相关矩阵和显著性水平
24.在多元正态性的假设下,ggm包中的pcor.test()函数可以用来检验在控制一个或多个额外变量时两个变量之间的条件独立性。使用格式为:pcor.test(r,q,n)r是由pcor()函数计算得到的偏相关系数,q为要控制的变量数(以数值表示位置),n为样本大小
25.独立样本的t检验一个针对两组的独立性样本t检验可以用于检验两个总体的均值相等的假设。这里假设两组数据是独立的,并且是从正态总体中抽得。检验的调用格式为:t.test(y~x,data)
26.非独立样本的t检验前-后测试设计或重复测量设计同样会产生非独立的组非独立样本的t检验假定组间的差异呈正态分布
27.如果能够假设数据是从正态总体中独立抽样而得的,那么可以使用方差分析(ANOVA)
28.组间差异的非参数检验1.如果数据无法满足t检验或ANOVA的参数假设,可以转而使用非参数方法。2.若两组数据独立,可以使用Wilcoxon秩和检验(Mann-Whitney U检验)来评估观测是否是从相同的概率分布中抽得(即,在一个总体中获得更高得分的概率是否比另一个总体要大)。调用的格式为:wilcox.test(y~x,data)
29.Wilcoxon符号秩检验是非独立样本t检验的一种非参数代替方法。它使用于两组成对数据和无法保证正态性假设的情境。
30.多余两组的比较如果无法满足ANOVA设计的假设,那么可以使用非参数方法来评估组间的差异。如果各组独立,则Kruskal-Wallis检验将是一种使用的方法。如果各组不独立(如重复测量设计或随机区组设计),那么Friedman检验更合适;Kruskal-Wallis检验的调用格式为:kruskal.test(y~A,data)Friedman检验的调用格式为:friedman.test(y~A|B,mdata)
1.OLS(最小二乘)回归是通过预测变量的加权和来预测量化的因变量,其中权重是通过数据估计而得到的参数。2.在R中,拟合线性模型最基本的函数就是lm(),格式是:myfit&-
lm(formula,data)
3.回归模型的假设条件很苛刻:结果或响应变量不仅是数值型的,而且还必须来自正态分布的随机抽样。4.回归分析通知那些一个或多个预测变量(自变量)来预测响应变量(因变量)的方法。通常,回归分析可以用来挑选与响应变量相关的解释变量,可以描述两者的关系,也可以生成一个等式,通过解释变量来预测响应变量。5.回归分析的各种变体简单线性
用一个量化的解释变量预测一个量化的响应变量多项式
用一个量化的解释变量预测一个量化的响应变量,模型的关系是n阶多项式多层
用拥有等级结构的数据预测一个响应变量.也被称为分层模型、嵌套模型或混合模型多元线性
用一个或多个量化的解释变量预测一个量化的响应变量多变量
用一个或多个解释变量预测多个解释变量Logistic
用一个或多个解释变量预测一个类别型响应变量泊松
用一个或多个解释变量预测一个代表频数的响应变量Cox比例风险
用一个或多个解释变量预测一个事件(死亡、失败或疾病复发)发生的时间时间序列
对误差项相关的时间序列数据建模非线性
用一个或多个量化的解释变量预测一个量化的响应变量,不过模型是非线性的非参数
用一个或多个量化的解释变量预测一个量化的响应变量,模型的形式源自数据形式,不事先设定稳健
用一个或多个量化的解释变量预测一个量化的响应变量,能抵御强影响的干扰
6.对拟合线性模型非常有用的函数summary()
展示拟合模型的详细结果coefficients()
列出拟合模型的模型参数(截距项和斜率)confint()
提供模型参数的执行区间(默认95%)fitted()
列出拟合模型的预测值residuals()
列出拟合模型的残差值anova()
生成一个拟合模型的方差分析表,或者比较两个或更多拟合模型的方差分析表vcov()
列出模型参数的协方差矩阵AIC()
输出赤池信息统计量plot()
生成评价拟合模型的诊断图predict()
用拟合模型对新的数据集预测响应变量值
7.非线性模型可用nls()模型进行拟合
8.car包中的scatterplot()函数可以绘制二元关系图
9.cor()函数提供了二变量之间的相关关系,car()包中scatterplotMatrix()函数则会生成散点图矩阵scatterplotMatrix()函数默认在非对角线区域绘制变量间的散点图,并添加平滑和线性拟合曲线。对角线区域绘制每个变量的密度图和轴线图
& states&- as.data.frame(state.x77[,c("Murder","Population","Illiteracy","Income","Frost")])& View(states)& library(car)& cor(state)
Murder Population Illiteracy
FrostMurder
1.....5388834Population
0.....3321525Illiteracy
0.....6719470Income
-0.....2262822Frost
-0.....0000000& scatterplotMatrix(states,spread = FALSE,smoother.args = list(lty=2),main="Sactter Plot Matrix")& windows()& scatterplotMatrix(states,spread = FALSE,smoother.args = list(lty=2),main="Sactter Plot Matrix")
10.通过effects包中的effect()函数,可以用图形展示交互项的结果,格式为:plot(effect(term,mod,,xlevels),multiline=TRUE)term即模型要画的项,mod为通过lm()拟合的模型,xlevels是一个列表,指定变量要设定的常量值,multiline=TRUE选项表示添加相应直线& library(effects)& windows()& plot(effect("hp:wt",fit,,list(wt=c(2.2,3.2,4.2))),multiline = TRUE)
11.对lm()函数返回的对象使用plot()函数,可以生成评价模型拟合的四副图:(1)正态性:(Normal Q-Q):如满足正态假设,那么图上的点应该落在呈45度角的直线上;若不是如此,那么就违反了正态性的假设。(2)线性:(Residuals vs Fitted):若变量与自变量线性相关,那么残差值与预测(拟合)值就没有任何关系。(3)同方差性:(Scale-Location Graph):若满足不变方差假设,那么在“位置尺度图”中,水平线周围的点应该随机分布(4)残差于杠杆图):Residuals vs Leverage:提供了你可能关注的单个观测点的信息,从图形可以鉴别离群点、高杠杆值点和强影响点。
12.car包中的回归诊断实用函数qqplot()
分位数比较图durbinWatsonTest()
对误差自相关性做Durbin-Watson检验crPlots()
成分与残差图ncvTest()
对非恒定的误差方差做得分检验spreadLevelPlot()
分散水平检验outlierTest()
Bonferroni离群点检验avPlots()
添加的变量图形inluencePlot()
回归影响图scatterplot()
增强的散点图scatterplotMatrix
增强的散点图矩阵vif()
方差膨胀因子
13.时间序列数据通常呈现自相关性------相隔时间越近的观测相关性大于相隔越远的观测。car包提供了一个可做Durbin-Watson检验的函数,能够检测误差的序列相关性。
14.线性通过成分残差图也称偏残差图,可以看看因变量与自变量之间是否呈线性关系,也可以看是否有不同于已设定线性模型的系统偏差,图形可用car包中的crPlots()函数绘

我要回帖

更多关于 booktitle 的文章

 

随机推荐