乐清网站制作推荐,代理公司资质,英文杭州网站建设,网站建设教程搭建湖南岚鸿原博#xff1b;R语言与数据挖掘#xff1a;公式#xff1b;数据#xff1b;方法R语言特征 对大小写敏感通常#xff0c;数字#xff0c;字母#xff0c;. 和 _都是允许的(在一些国家还包括重音字母)。不过#xff0c;一个命名必须以 . 或者字母开头#xff0c;并且如… 原博 R语言与数据挖掘公式数据方法 R语言特征 对大小写敏感通常数字字母. 和 _都是允许的(在一些国家还包括重音字母)。不过一个命名必须以 . 或者字母开头并且如果以 . 开头第二个字符不允许是数字。基本命令要么是表达式expressions要么就是 赋值assignments。命令可以被 (;)隔开或者另起一行。基本命令可以通过大括弧({和}) 放在一起构成一个复合表达式compound expression。一行中从井号(#)开始到句子收尾之间的语句就是是注释。R是动态类型、强类型的语言。R的基本数据类型有数值型numeric、字符型character、复数型complex和逻辑型logical对象类型有向量、因子、数组、矩阵、数据框、列表、时间序列。 基础指令 程序辅助性操作运行 q()——退出R程序 tab——自动补全 ctrlL——清空console ESC——中断当前计算 调试查错 browser() 和 debug()——设置断点进行运行到此可以进行浏览查看具体调试看browser帮助文档c,n,Q stop(your message here.)——输入参数不正确时停止程序执行 cat——查看变量 帮助 help(solve) 和 ?solve 等同 ??solve——检索所有与solve相关的信息 help([[) 对于特殊含义字符加上双引号或者单引号变成字符串也适用于有语法涵义的关键字 iffor 和 function help(packagerpart)——查看某个包 help.start()——得到html格式帮助 help.search()——允许以任何方式话题搜索帮助文档 exampletopic——查看某个帮助主题示例 aproposkeyword——查找关键词keyword相关的函数 RSiteSearch(onlinekey restrictfuction)——用来搜索邮件列表文档、R手册和R帮助页面中的关键词或短语互联网RSiteSearch(neural networks) 准备 文件目录设置 setwddir——设置工作文件目录 getwd——获取当前工作文件目录 list.files()——查看当前文件目录中的文件 加载资源 search()——通过search()函数可以查看到R启动时默认加载7个核心包。 基础函数数学计算函数统计计算函数日期函数包加载函数数据处理函数函数操作函数图形设备函数 setRepositpries——选择软件库CRANBioconductorR-Forge寻找安装包的方法另看《【R笔记】寻找R的安装包》 (.packages())——列出当前包 (.packages(all.availableTRUE))——列出有效包 install.packages“package”——安装包 library和require——加载R包package至工作空间 data——列出可以被获取到的存在的数据集(base包的数据集) datadatasetspackage“nls”——将nls包的datasets加载到数据库中 批处理文件和结果重定向 source(commands.R)——执行commands.R 存放批处理命令的脚本文件。 cat(Rcommond,file)——可以把R命令输出至外部文件然后调用source函数进行批处理 do.call(funcnamepars)——调用函数第一个参数funcnames指示调用函数字符串名称第二个参数包含调用所需参数的一个列表pars sink(record.lis)——把后续的输出结果从控制台重定向到外部文件 record.lis 中 sink——把后续代码输出重新恢复到终端上展示 attachdatafame——将数据框datafame中的变量链接到内存中便于数据调用 detach()——对应attach(datafame)取消变量的链接detach()里没有参数 注attach()和detach()均是在默认变量搜索路径表中由前向后找到第一个符合变量名称因此之前若存在重名变量有可能会出现问题 数据处理 输入输出读入输出数据、文件 assign(x,c(1,2,3)) 和 x - c(1,2,3) 和 c(1,2,3)-x ——向量赋值 read.tableinfantry.txt, sep\t headerTRUE——seq属性用其它字符分割比如文本文件用空格tab分隔header设置为文件中已经存在表头名称 read.csv(targets.csv)——读入csvComma Seperated Values文件属性被逗号分割 read.csv(url(link))——read.csv() 和 url()的合体读存在网上的数据 x - scan(file)——手动输入数据同时scan可以指定输入变量的数据类型适合大数据文件 scan(data.dat, what list(, 0, 0))——what指定变量类型列表 readLines(http://en.wikipedia.org/wiki/Main_Page,n10)——读取文本文件将文档转为以行为单位存放的list格式比如读取读取wikipedia的主页html文件的前十行 write.table(Data, filefile.txt, row.names FALSE, quoteFALSE)——输出quote为FALSE去掉字符串类型的双引号write.table(stasum, stasum.csv,row.names FALSE,col.nameFALSE,sep,,appendTRUE) write.csvdatafilefoo.csv,row.namesFALSE——写成csv格式,row.namesFALSE去掉行号 print——打印 save.image./data.RData——把原本在计算机内存中工作空间活动的数据转存到硬盘中。 load(./RData)——加载目录中的*.RData把文档-词项矩阵从磁盘加载到内存中 数据查看 通用对象 R是一种基于对象Object的语言对象具有很多属性Attribute其中一种重要的属性就是类Class最基本的类包括了数值numeric、逻辑logical、字符character、列表list符合类包括矩阵matrix、数组array、因子factor、数据框dataframe。 class(object) 和 data.class(object)——查看对象object的类或类型 unclass()——消除对象object的类 基本数据类型mode()——查看基本数据类型 length()——查看长度 as.数据类型——改变对象的数据类型 特殊属性attributes(object)——查看对象object各种属性组成的列表 attr(object“name”)——存取对象object的名为name的属性 混合类型逻辑类型数值类型数值类型 逻辑类型字符类型字符类型 数值类型字符类型字符类型 ls() 和 objects——查看当前工作空间中存在的对象变量 rm(listls())——删除工作空间的所有对象 methods(x)——查看x函数的源码有些自带函数输入名称x可以直接看到有一些需要调用methods方法才能查看函数x的源码出现多重名输入对应名称即可 str——查看数据框中的数据总体信息比如样本个数、变量个数、属性变量名称、类型 nrow(dataframe)——查看数据集行数 NROWvector——查看向量的行数等于length(x) head(dataframe)——查看数据集前6行数据 tail(dataframe)——查看数据集尾6行数据 向量特征 逻辑向量运算 TRUEFALSE——全部大写 isTRUE(x)——判断x为TRUE *|——或且非注意是单个不是 ANYALL——任意全部 数组和矩阵 train$var train$new[train$var NA] - 1 Data[is.na(Data)] - 0——数据框多维变量中给NA值赋值为0 applyAMarginFUN...——A为矩阵Margin设定待处理的维数为1是横排行为2是竖排列做运算Fun是运算函数 sweepx2applyxMARGIN1meanFUN——对数组或者矩阵进行运算。 MARGIN1表示行2表示列STATS统计量如applyxMARGIN1meanFUN函数运算默认为减法“/”除法 y.vector-with(data,get(yval))——表示在data数据框中读取列名称为yval的向量。 with(datacolname|func)——提取数据框中的某些参数做运算对于数据框运算很方便 绘图 plot()——绘制图像 plot(vecter_horizontal, vector_vertical, pchas.integer(factors)colxlabylab)——用factors区分图像点的类型pch圆的三角叉col是颜色类别xlab或者ylab对应横纵轴标题 legend(locationtopright,legendvector_labelname,pch1:3cex1col)——图例location是位置比如右上vector_labelname图例类别标签名pch是图例对应标签的类别id向量cex调整字体比例大小颜色设置legend(topright, levels(factors), pch1:length(levels(factors))) text(XYlabelsc(1,2,3),adj1.2)——添加标注,X,Y是对应坐标的向量labels是标记值adj调整标注位置 abline(h intlty2)——低级绘图添加一条水平线h或者是回归模型直线垂线vlty为2表示绘制虚线 abline(a,b)——画一条yabx的直线 pointsxy————低级绘图画个点坐标为向量xy linesxy——低级绘图画一条线坐标为向量xy axis(side1atseq(from0.7by1.2length.out7)labelsc...)——绘制坐标轴低级绘图side为2是纵坐标 barchart——lattice包预先要对数据汇总 barplot(vector)——绘制柱状图vector可增加名称。也可以绘制直方图和hist均分数据不太一样需要用table统计各个子分段下样本数量后在画图。 mosaicplotx~ymaincolorTxlabylab——柱形对应关系图 contour(matrix)——创建等高线 persp(matrixexpand0.2——创建3D图expand扩展值设置为0.2否则为全屏扩展 imagevolcano——加载栅格矩阵图像 parmfrowc(1,2)omamar——mfrow设置图形输出窗口为1行2列添加car包oma是所有图像距离边框的距离(底部左边顶部右边)mar是每幅图像对边框的距离默认是c(5, 4, 4, 2) 0.1。 lines(data)——低级原图中画线data是由散点(xy)组成 rugjitterdataside 2——检验离群点数据rug原图中执行绘图绘制在横坐标上side为2是纵坐标jitter(data)对绘制值略微调整增加随机排序以避免标记值作图重合。 pairs(data)——数据框各个变量的散布图 coplot(y~x|ab)——多个变量时的散点图在ab向量或是因子的划分下的y与x的散点图 scatterplotMatr()——散点图矩阵car包 identifydata——交互式点选单击图形中的点将会输出对应数据的行号右击结束交互 stem(xscale1width80atom1e-08)——茎叶图,scale控制茎叶图的长度为2即是以0~4为一组5~9为一组将个位分成两部分width是绘图宽度atom是容差 boxplot——箱图研究变量的中心趋势以及变量发散情况和离群值。上体顶部和底部为上下四分位数中间粗线为中位数上下伸出的垂直部分为数据的散步范围最远点为1.5倍四分为点超出后为异常点用圆圈表示。boxplot(y~f,notchTRUE,col1:3,addTRUE)#y是数据f是由因子构成notch是带有切口的箱型图addT图叠加到上一幅图。 plotfy——箱线图f是因子y是与f因子对应的数值 bwplotfactor ~ ydataylab——lattice包的箱图绘制不同factor下的y的箱图条件绘图在某个因子取值集合下的y值变化 bwplotsize~a1,data,panelpanel.bpplot,probseq(.01,.49,by.01),datadensityTRUE,ylab——Hmisc包的分位箱图 earth.count(na.omitx,number4,overlap1/5)——连续变量x的离散化把x转化为因子类型number设置区间个数overlap设置两个区间靠近边界的重合每个区间的观测值相等 stripplot(x1~y|x2)——lattice包的复杂箱图存在两个因子x1,x2控制下的y, x2按照从左到右从下到上的顺序排列左下方的x2值较小 palette()——col取值对应的颜色 black red green3 blue cyan magenta yellow gray colors——列出对应的颜色数组 qcc——qcc包监控转化率型指标的质量监控图P控制图监控异常点前提是二项分布足够大后趋于正态分布 mosaictabshadeTlegendT——绘制三级列联表tab是三级列联表或者公式vcd包 curvesapply(x,func)fromto——画曲线图from和to设置横坐标取值范围 编辑 optim(c(0,0),func)——优化问题函数c(0,0)是优化函数参数的初始值返回值par是参数最优点值value是参数的最优点时平方误差值counts是返回执行输入函数func的次数以及梯度gradient的次数convergence值为0表示有把握找到最优点非0值时对应错误message是一些其它信息。 curvesapply(x,func)fromto——画曲线图from和to设置横坐标取值范围 sample(length(x)sizereplaceF)——采样生成向量x的随机顺序的大小为size的新向量replace为False为不重复抽样为True则重复抽样 Round ——取整。精确 ceiling()——取整偏向数值小的 floor() ——取整偏向数值大的 %/% ——整除 colnames(Data)[4]value——更换某一列名 edit——编辑数据表格 fix—— rmxy——移除对象变量x和y na.exclude(data)——移除缺失数据整行 na.omit(data)——删除缺失数据 attrna.omitdata,na.action——返回向量a中元素为NA的下标 na.fail——如果向量中至少包括1个NA值则返回错误如果不包括任何NA则返回原有向量 merge(x targets, y infanty)——合并数据框x和y是待合并数据框相同属性字段也会合并在一起 merge(x, y, by intersect(names(x), names(y)),by.x by, by.y by, all FALSE, all.x all, all.y all,sort TRUE, suffixes c(.x,.y),incomparables NULL, ...) merge函数参数的说明: x,y:用于合并的两个数据框 by,by.x,by.y:指定依据哪些行合并数据框,默认值为相同列名的列. all,all.x,all.y:指定x和y的行是否应该全在输出文件. sort:by指定的列是否要排序. suffixes:指定除by外相同列名的后缀. incomparables:指定by中哪些单元不进行合并. scale(x, center TRUE, scale TRUE)——中心化与标准化center是中心化scale是标准化。全选减去均值再除以标准差 cut(xbreaksc(0,10,30)labelsordered_resultF)——连续数据的离散化将向量依据breaks区间分割为因子向量。labels设置返回因子向量的水平标签值ordered_result为False生成的因子向量无大小意义否则有大小意义 apply族函数 apply(AMARGINFUN...)——处理对象A是矩阵或数组MARGIN设定待计算的维数FUN是某些函数如meansum 注apply与其它函数不同它并不能明显改善计算效率因为它本身内置为循环运算。 按列 lappy(dataframeFUNlist(median,sd))——处理对象是向量、列表或其它对象输出格式为列表list sapply(dataframe$FiledFUN)——与lapply()相似输出格式为矩阵或数据框 按行 tapply(X, INDEX, FUN, simplify TRUE) ——处理分组数据, INDEX和X是有同样长度的因子simplify是逻辑变量默认为T aggregate(x~yz, dataFUN)和by()——和tapply功能类似 其余参看apply函数族 plyr库 ddply(Data.(user_iditem_id)summarizeliulansum(liulan)——split-apply-combine的一体化函数.(user_iditem_id)作为每行的一对标识ID因子前面的“.”号省略数据框名称summrize是一个函数funliulan是一个变量最后生成的数据框只有user_iditem_idliulan三列。详情参见例子 R语言利器之ddply transform(xy)——将x和y的列转换成·一个数据框。 reshape库reshape2meltdataid.vars——转换数据溶解。修改数据组织结构创建一个数据矩阵以id.var作为每行的编号剩余列数据取值仅作为1列数值并用原列名作为新数值的分类标记。 castdata, userid~itemid,valuerattings,fill0——统计转换数据生成矩阵公式~左边的作为行表名右边的作为列表名。之后可以用cor计算每列数据之间的相关系数并计算距离。 acast 和 dcastdata, userid~itemid,value.varrattings——同上reshape2包acast最后生成数组dcase生成数据框。参见 R语言进阶之4数据整形reshape 字符串处理 nchar()——获取字符串长度它能够获取字符串的长度它也支持字符串向量操作。注意它和length()的结果是有区别的什么区别 paste(a, b, sep)——字符串粘合负责将若干个字符串相连结返回成单独的字符串。其优点在于就算有的处理对象不是字符型也能自动转为字符型。 strsplit(Asplit[,.]) ——字符串分割负责将字符串按照某种分割形式将其进行划分它正是paste()的逆操作。 substr(data,start,stop)——字符串截取能对给定的字符串对象取出子集其参数是子集所处的起始和终止位置。子集为从start到stop的下标区间 grep()——字符串匹配负责搜索给定字符串对象中特定表达式 并返回其位置索引。grepl()函数与之类似但其后面的l则意味着返回的将是逻辑值 regexprpattern,text——从字符串text中提取特定的字符串的下标位置 gregexpr——只查询匹配的第一个特定字符串的下标位置 gsub(a,1,vector)——字符串替代负责搜索字符串的特定表达式并用新的内容加以替代。 sub()函数——和gsub是类似的但只替代第一个发现结果。 chartr( )——字符串替换函数 toupper( )、tolower( )及casefold( )——大小写转换函数 其余参见R语言中的字符串处理函数 控制流if—else——分支语句 switch(index,case1,case2,casen)——index指示跳到第i个casei中 fori in vecter——循环语句通过控制变量i while——循环语句通过设定循环范围 repeat—break——循环语句无限循环由break跳出 特殊数据对象 向量特性向量数组初始小标序号从1开始 向量增加元素可以直接通过“vector[n1]-0”方式增加 a-c()——向量初始化 vector - numericint——创建初始向量int个数并赋初值为0 lengthvector- leg——修改对象长度为leg names(vector) - c(A,B,C)——给向量起名称 vector[A]——通过名称访问对应元素 a c(1, 99, 3)——比较每一个元素对应是否相等 c01——创建向量向量内元素类型应一致 seq59和 59 ——连续向量等差数列 seq590.5——以0.5为间隔创建 seq(from,to,length,by) 数据索引 whichis.na(var) T——返回对应数组序号 which.max() 和 which.min()——返回数值类型中最大和最小元素下标 subsetdata,conditioncolname——索引data是数据condition是索引条件colnames指定索引列名 matchxtablenomatchincomparables——匹配函数返回x对应值在table中是否存在并从1开始编号。x是查询对象table是待匹配的向量nomatch是不匹配项的设置值默认为NA值incomparables设置table表中不参加匹配的数值默认为NULL x %n% y——判断x中是否包含y返回x对应的逻辑值 排序 sort(x, decreasing FALSE, na.last NA, ...)——排序单变量排序输出排序结果不是序号。na.last为TRUE缺失值放在数据最后为False 缺失值放在数据最前面为NA缺失数据将被移除 sort.list()——排序输出序号值 order()——排序多个变量数据框排序返回数据框序号数。order例子【结】 结合ddply和transform函数降序输出并输出编号ddply(dfx,.(group,sex),.funfunction(x){transform(x[order(x$age,decreasingTRUE),c(1:3)],ind1:length(group))}) rank()——秩排序有重复数字的时候就用这个根据数值之间的远近输出序号 rev()——依据下标从后往前倒排数据 uniquedataframe——返回无重复样本的数据集 duplicatedx——查找重复数据重复序号返回为TRUE 比较大小 pminx1,x2,...——比较向量中的各元素并把较小的元素组成新向量 pmaxx1,x2,...—— 向量间的交、并、补集 union(x, y)——并集合并两组数据x和y是没有重复的同一类数据比如向量集 intersect(x, y)——交集对两组数据求交集x和y是没有重复的同一类数据比如向量集 setdiff(x, y)——补集x中与y不同的数据x和y是没有重复的同一类数据比如向量集重复不同不记 setequal(x, y)——判断x与y相同返回逻辑变量True为相同False不同。x和y是没有重复的同一类数据比如向量集 is.element(x, y) 和 %n%——对x中每个元素判断是否在y中存在TRUE为xy重共有的元素Fasle为y中没有。x和y是没有重复的同一类数据比如向量集 Vectorize()——将不能进行向量化预算的函数进行转化 矩阵arraydataNA,dimlength(data),dimnamesnull——数组、矩阵初始化,dim是数组各维的长度dimnames是数组维的名字默认为空array(1:20, dimc(4,5))。数组是多维的dim属性设置维数matrix(0, 3, 4)——0为赋初值3行4列存储方式是先列后行矩阵是二维的用ncol和nrow设置矩阵的行数和列数。byrow设置存储方式默认列优先若为TRUE则以行优先 dimvector- c(2,3)——设置矩阵为2行3列 dimnameslist(crowccol)——设置参数行和列的名称以列表的形式进行输入 matrix[ ,4]——矩阵第4列 as.vector(matrix)——将矩阵转换成向量 a[name1,name2]——矩阵以行和列的名称来代替行列的下标name1是行名name2是列名 rbind——矩阵合并按行合并自变量宽度应该相等 cbind——矩阵合并安列合并自变量高度应该相等 t()——矩阵转置 det()——行列式 solveAb——求线性方程组Axb solveA——求逆矩阵 eigenA ——求距阵的特征值与特征向量Ax(Lambda)xA$values是矩阵的特征值构成的向量A$vectors是A的特征向量构成的矩阵 *——矩阵中每个元素对应相乘 %*%——矩阵相乘 因子因子和向量的区别 向量里面存的元素类型可以是字符型而因子里面存的是整型数值对应因子的类别levels as.integer(factors)——因子可以转化为整型 levels(factors)——查看因子类别 glnklength——因子,n为水平数k为重复的次数length为结果的长度 factor(xlevelslabels)——因子 as.factror()——将向量转化为无序因子不能比较大小 as.order()——将向量转化为有序因子 is.factor()——判断是否为无序因子 is.order()——判断是否为有序因子 列表和数据框list()——列表 unlist()——列表转化为向量 data.frame()——数据框 names(dataframe)——显示数据框的列名称 dataframe[[2]] 和 dataframe[[TheSec.Name]] 和 dataframe$TheSec.Name——获取数据框第二列的元素值 as.matrix(dataframe)[1]——把数据框转化为矩阵后再去提取列向量 na和NULL的区别is.na()——判断na值存在na是指该数值缺失但是存在。 is.null——判断数据是否为NULL。NULL是指不存在可以通过 train$var-NULL 的方法去掉属性变量var。 处理缺失数据na1、将缺失部分剔除 2、用最高频率值来填补缺失值 3、通过变量的相关关系来填补缺失值 4、通过探索案例之间的相似性来填补缺失值 公式a:b——a和b的交互效应 ab——a和b的相加效应 a*b——相加和交互效应等价于abab -b——去掉b的影响 1——y~1拟合一个没有因子影响的模型仅仅是截距 -1——y~x-1表示通过原点的线性回归等价于y~x0或者0y~x ^n——包含所有知道n阶的交互作用abc^2abca:ba:cb:c poly(a,n)——a的n阶多项式 I(x1x2)——表示模型ybx1x2a 数理统计 基础知识统计量 meanxtrim0,na,rmFALSE——均值trim去掉x两端观测值的便利默认为0即包括全部数据na.rmTRUE允许数据中有缺失 weighted.mean(xweigth)——加权平均值weigth表示对应权值 median——中值 quantile(xprobsseq(start,end,diff))——计算百分位数是五数总和的扩展probs设置分位数分位点用seq(0,1,0.2)设置表示以样本值*20%为间隔划分数据。 var——样本方差n-1 sd——样本标准差n-1 cov——协方差 cor——相关矩阵 fivenum(x,na.rmTRUE)——五数总括中位数下上四分位数最小值最大值 数学函数 sumx,y,zna.rmFALSE——xyzna.rm为TURE可以忽略掉na值数据 sumx4——统计向量x中数值大于4的个数 rep“LOVE”times——重复times次rep(1:3c123)表示1个12个23个3组成的序列 sqrt——开平方函数 2^2 和 **——“^”幂运算 abs——绝对值函数 %%——表示求余 %/%——求商整数 exp 2.71828… expm1 当x的绝对值比1小很多的时候它将能更加正确的计算exp(x)-1 log 对数函数自然对数 log10 对数底为10函数常用对数 log2 对数底为2函数 因为10e1常用对数比自然对数更接近横坐标轴x log1p()——log1p用来解决对数变换时自变量p0的情况。指数和对数的变换得出任何值的0次幂都是1 特性对数螺旋图。当图像呈指数型增长时常对等式的两边同时取对数已转换成线性关系。 sin 正弦函数 cos 余弦函数 tan 正切函数 asin 反正弦函数 acos 反余弦函数 atan 反正切函数 sinh 超越正弦函数 cosh 超越余弦函数 tanh 超越正切函数 asinh 反超越正弦函数 acosh 反超越余弦函数 atanh 反超越正切函数 logb 和log函数一样 log1px 当x的绝对值比1小很多的时候它将能更加正确的计算log(1x) gamma Γ函数伽玛函数 lgamma 等同于log(gamma(x)) ceiling 返回大于或等于所给数字表达式的最小整数 floor 返回小于或等于所 给数字表达式的最大整数 trunc 截取整数部分 round 四舍五入 signif(x,a) 数据截取函数 x有效位 a到a位为止 圆周率用 ‘pi’表示 crossprod(A,B)——A %*% t(B) 内积 tcrosspeod(A,B)——t(A) %*% B外积 %*%——内积a1b1a2b2...anbna*b*cosa,bcrossprod(x)表示x与x的内积。||x||2矩阵相乘 %o%——外积a*b*sina,b矩阵乘法叉积tcrossprod(x,y)表示x与y的外积。*表示矩阵中对应元素的乘积 向量内积点乘和向量外积叉乘 正态分布 dnormxmean0,sd1,logFALSE——正态分布的概率密度函数 pnorm(xmean0,sd1)——返回正态分布的分布函数· rnormnmean0.sd1——生成n个正态分布随机数构成的向量 qnorm()——下分为点函数 qqnormdata——画出qq散点图 qqlinedata——低水平作图用qq图的散点画线 qq.plotxmain——qq图检验变量是否为正态分布 简单分析 summary()——描述统计摘要和 Hmisc()包的describe()类似会显示NA值四分位距是第1个25%取值小于该值和第3个四分位数75%取值小于该值的差值50%取值的数值可以衡量变量与其中心值的偏离程度值越大则偏离越大。 table(datafame$var)——统计datafame数据中属性变量var的数值取值频数(NA会自动去掉)列联表 table(data_var_1, data_var_2)——比较两个data_vardata_var_1为列data_var_2为行先列后行 xtabs(formulardata)——列联表 ftable( table())——三维列联表 prop.table()——统计所占百分比例 prop.table(table(data_var_1, data_var_2)int)——比较两个data_var所占百分比int填1位按行百分计算2为列计算 margin.table( table()int )——计算列联表的边际频数边际求和,int1为按列变量 addmargin.tabletable()int ——计算列联表的边际频数边际求和并求和,int1为按列变量 as.formula(string)——转换为一个R公式string是一个字符串 循环时的判断语句 ifelse(test, yes, no)——ifelse的变种test是判断语句,其中的判断变量可以是一个向量yes是True时的赋值no是False时的赋值 hist(dataprobTxlab横坐标标题main标题ylim0:1freqbreaksseq(0,550,2))——probT表示是频率直方图在直角坐标系中用横轴每个小区间对应一个组的组距纵轴表示频率与组距的比值直方图面积之和为1prob位FALSE表示频数直方图ylim设置纵坐标的取值范围freq为TRUE绘出频率直方图counts绘出频数直方图FALSE绘出密度直方图。breaks设置直方图横轴取点间隔如seq(0,550,2)表示间隔为2从0到550之间的数值。 density(data,na.rmT)——概率密度函数核密度估计非参数估计方法用已知样本估计其密度,作图为lines(density(data),colblue) ecdfdata——经验分布函数,作图plot(ecdf(data),verticaslFALSE,do.pFALSE)verticals为TRUE表示画竖线默认不画。do.pFALSE表示不画点处的记号 假设检验分布函数 shapiro.test(data)——正态W检验方法当p值大于a为正态分布 ks.test(x,y)——经验分布的K-S检验方法比较x与y的分布是否相同y是与x比较的数据向量或者是某种分布的名称ks.test(x, rnorm(length(x), mean(x), sd(x)))或ks.test(x,pnorm,mean(x),sd(x)) chisq.test(xyp)——Pearson拟合优度X2卡方检验x是各个区间的频数p是原假设落在小区间的理论概率默认值表示均匀分布,要检验其它分布比如正态分布时先构造小区间并计算各个区间的概率值方法如下 brk-cut(x,brc(-6,-4,-2,0,2,4,6,8))#切分区间 A-table(brk)#统计频数 p-pnorm(c(-4,-2,0,2,4,6,8),mean(x),sd(x))#构造正态分布函数 p-c(p[1],p[2]-p[1],p[3]-p[2],p[4]-p[3],p[5]-p[4],p[6]-p[5],p[7]-p[6])#计算各个区间概率值 chisq.test(A,pp) 正态总体的均值方差 t.test(xyalternativec(two.sided,less,greater)var.equalFALSE)——单个正态总体均值μ或者两个正态总体均值差μ1-μ2的区间估计alternative表示备择假设two.side默认是双边检验less表示H1:μμ0greater表示H1μμ0的单边检验(μ0表示原假设)当var.equalTRUE时则是双样本方差相同的情况默认为不同 var.test(xy)——双样本方差比的区间估计 独立性检验原假设H0X与Y独立 chisq.test(x,correctFALSE)——卡方检验x为矩阵dim(x)c(2,2)对于大样本频数大于5 fisher.test()——单元频数小于5列联表为2*2 相关性检验原假设H0X与Y相互独立 cor.testx,y,methodc(pearson,kendall,spearman)——相关性检验观察p-value小于0.05则相关。method选择相关性检验方法 秩 rank()——秩统计量 cor.test——秩相关检验SpearmanKendall wilcox.test(x,yNULLmu,alternativepairedFALSEexactFALSE,correctFALSEconf.intFALSE)——秩显著性检验一个样本来源于总体的检验显著性差异的检验Wilcoxon秩和检验非成对样本的秩次和检验,mu是待检测参数比如中值paired逻辑变量说明变量xy是否为成对数据exact说民是否精确计算P值correct是逻辑变量说明是否对p值采用连续性修正conf.int是逻辑变量给出相应的置信区间。 uniroot(fintervalc(1,2))——求一元方程根的函数f是方程interval是求解根的区间内返回值root为解 optimize(或 optimise——求一维变量函数的极小点 nlmfp——求解无约束问题求解最小值f是极小的目标函数p是所有参数的初值采用Newton型算法求极小函数返回值是一个列表包含极小值、极小点的估计值、极小点处的梯度、Hesse矩阵以及求解所需的迭代次数等。 显著性差异检验方差分析原假设相同相关性 mcnemar.test(x,ycorrectFALSE)——相同个体上的两次检验检验两元数据的两个相关分布的频数比变化的显著性即原假设是相关分布是相同的。y是又因子构成的对象当x是矩阵时此值无效。 binom.test(xnpalternativec(two.sided,less,greater)conf.level0.95)——二项分布符号检验一个样本来源于总体的检验显著性差异的检验 aovx~f——计算方差分析表x是与因子f对应因素水平的取值用summary函数查看信息 aovx~ABAB——双因素方差其中X~AB中A和B是不同因素的水平因子不考虑交互作用AB代表交互作用生成的因子 p.adjust()——P值调整函数 pairwise.t.test(xgp.adjust.methodholm)——多重t检验,p.adjust.method是P值的调整方法其方法由p.adjust给出默认值按Holm方法”holm“调整若为”none“表示P值不做任何调整。双因素交互作用时gAB shapiro.testx——数据的正态W检验 bartlett.testx~fdata——Bartlett检验方差齐性检验 kruskal.testx~fdata——Kruskal-Wallis秩和检验非参数检验法不满足正态分布 friedman.test(xf1f2data——Friedman秩和检验不满足正态分布和方差齐性f1是不同水平的因子f2是试验次数的因子 常用模型 1、回归模型 lmy~.data——线性回归模型“.”代表数据中所有除y列以外的变量变量可以是名义变量虚拟变量k个水平因子生成k-1个辅助变量值为0或1 summary——给出建模的诊断信息 1、数据拟合的残差Residual standard errorRSE残差应该符合N01正态的值越小越好 2、检验多元回归方程系数变量的重要性t检验法Pr|t|, Pr值越小该系数越重要拒绝原假设 3、多元R方或者调整R2方标识模型与数据的拟合程度即模型所能解释的数据变差比例R方越接近1模型拟合越好越小越差。调整R方考虑回归模型中参数的数量更加严格 4、检验解释变量x与目标变量y之间存在的依赖关系统计量F用p-value值p值越小越好 5、绘图检验plot(lm)——绘制线性模型和qq.plot误差的正态QQ图 6、精简线性模型向后消元法 线性回归模型基础 lmformulax~ydatasubset——回归分析x是因变量响应变量y是自变量指示变量formulary~x是公式其中若是有x^2项时应把公式改写为y~I(x^2)subset为可选择向量表示观察值的子集。例lm(Y ~ X1 X2 I(X2^2) X1:X2, data data) predict(lm(y~x)newinterval“prediction”level0.95)——预测new为待预测的输入数据其类型必须为数据框data.frame如new-data.frame(x7)interval“prediction”表示同时要给出相应的预测区间 predict(lm(y~x))——直接用用原模型的自变量做预测生成估计值 筛选模型自变量 lm.new-update(lm.solsqrt(.)~.)——修正原有的回归模型将响应变量做开方变换 updatelm, .~. - x1——移除变量x1后的模型 coef(lm.new)——提取回归系数 回归诊断 1、正态性QQ图 plot(x,which)——回归模型残差图which1~4分别代表画普通残差与拟合值的残差图画正态QQ的残差图画标准化残差的开方与拟合值的残差图画Cook统 norm.test——正态性检验p-value0.05为正态 计量的残差图 residuals()和resid()——残差 rstandard()——标准化残差 rstudent()——学生化残差 influence.measures(model)——model是由lm或者glm构成的对象对回归诊断作总括返回列表中包括广义线性模型也可以使用 anovalm——简单线性模型拟合的方差分析确定各个变量的作用 anovalm1,lm2——比较两个模型检验原假设为不同 2、误差的独立性——car包提供Duerbin_Watson检验函数 3、线性——car包crPlots绘制成分残差图偏残差图可以看因变量与自变量之间是否呈线性 4、同方差性——car包ncvTest原假设为误差方差不变若拒绝原假设则说明存在异方差性 5、多重共线性——car包中的vif函数计算VIF方差膨胀因子一般vif2存在多重共线性问题 异常点分析影响分析 hatvalues和hat——帽子矩阵 dffits——DFFITS准则 cooks.distance()——Cook统计量值越大越有可能是异常值点 covratio——COVRATIO准则 kappazexactFALSE——多重共线性计算矩阵的条件数k,若k100则认为多重共线性的程度很小100k1000则认为存在中等程度或较强的多重共线性若k1000则认为存在严重的多重共线性。z是自变量矩阵标准化中心化的相关矩阵exact是逻辑变量当其为TRUE时计算精准条件数否则计算近似条件数。用eigenz计算特征值和特征向量最小的特征值对应的特征向量为共线的系数。 step()——逐步回归观察AIC和残差平方和最小广义线性模型也可以使用 add1()——前进法 drop()——后退法 stepAICsol,directionbackward——MASS包可以实现逐步回归向前、向后、向前向后 预测 predictsolnewdataframelevel0.95intervalprediction——回归预测sol是模型newdataframe是待预测数据框level设置置信度intervalprediction表示结果要计算置信区间 glm(formulafamilybinomiallinklogitdatadata.frame)——广义线性模型logit默认为二项分布族的链接函数formula有两种输入方法一种方法是输入成功和失败的次数另一种像线性模型的公式输入方式 predict(glm()data.frame(x3.5)typeresponse)——预测广义线性回归模型type“response”表示结果为概率值否则为预测值y inv.logit——预测值y的反logitboot包的函数 glmnet——正则化glm函数glmnet包执行结果的行数越前正则化越强。其输出结果的意义是 1DF是指明非0权重个数但不包括截距项。可以认为大部分输入特征的权重为0时这个模型就是稀疏的sparse。 2%Dev就是模型的R2 3)超参数lambda是正则化参数。lambda越大说明越在意模型的复杂度其惩罚越大使得模型所有权重趋向于0。 plotlm(y~x)which1:4captionc(“Residuals vs Fitted”“Normal Q-Q plot”“Scale-Location plot”“Cooks distance plot”)——画回归模型残差图which为1表示画普通残差与拟合值的残差图2表示画正态QQ的残差图3表示画标准化残差的开方与拟合值的残差图4表示画Cook统计量的残差图caption是图题的内容。 avova(sol1,sol2,testChisq)——比较模型两个模型广义线性模型可用卡方检验分类变量不拒绝原假设说明两个没有显著差异即用较少自变量模型就可以。 非线性模型 poly想degree1——计算正交多现实x是数值向量degree是正交多项式的阶数并且degreelengthx样本个数例如建立二次正交式回归模型lm(y~1polyx2) nlsformula,data,start——求解非线性最小二乘问题formula是包括变量和非线性拟合的公式start是初始点用列表形式给出 nlm(fp)——非线性最小二乘构造最小目标函数方程移项2为0f是极小的目标函数p是所有参数的初值采用Newton型算法求极小函数返回值是一个列表minimum的值便是极小值estimate是参数的估计值。例如 fn-function(p,x,y){ f-y-p[1]*exp(p[2]*x) res-sum(f^2) } nlm.sol-nlm(fn,pc(3,-0.1),x,y) 2、回归树 rpart( y ~. data)——rpart包回归树叶结点目标变量的平均值就是树的预测值。生成一棵树再做修剪防止过度拟合内部10折交叉验证 printcprt——查看回归树结果rt是指rpart函数的运行结果模型plotcprt以图形方式显示回归树的参数信息 参数如下 cp——当偏差的减少小于某一个给定界限值默认0.01 minsplit——当结点中的样本数量小于某个给定界限时默认20 maxdepth——当树的深度大于一个给定的界限值默认30 prunert,cp——自行设置cp值的建树 snip.rpart(rt, c(4,7))——修剪需要修剪的那个地方的是结点号c(47)指出输出树对象来需要修剪的树的结点号 snip.rpart(rt)——交互修剪点击结点右击结束 3、随机森林 randomForest(y ~. data)——组合模型由大量树模型构成回归任务采用预测结果的平均值。 4、支持向量机 svm(formuladatagamma1/ncol(data)cost)——e1071包回归任务gamma0.01cost100违反边际所引入的损失? 5、时间序列分析 ts(data, frequency12, start(2006,1))——把一个向量转化为时间序列对象data向量frequency表示频率start表示时间起始点 decompose(datatype)——把时间序列分解成长期趋势和周期性变化data是设置了频率周期长度的时间序列数据typeadditive为累加形式长期趋势周期性变化随机变化multiplicative分解为累乘形式长期趋势*周期性变化*随机变化。默认使用additive累加形式。函数返回值sol-decompose()中sol$trend是时间序列趋势seasonal是季节性周期变化random是随机误差。 stl(data,per)——分解时间序列返回值sol-stl()中sol$time.series[, seasonal]读取周期性序列seasonalsol$time.series[, trend]读取长期趋势trend。误差可以使用sol$time.series[, remainder]读取。 增长率 diff(data,lag1)——差分上下做差lag控制变量上下间隔为1 ring.growth[t](data[t]-data[t-1])/data[t-1]——同比增长率描述指标变化趋势 sam.per.grown[t](data[t]-data[t-T])/data[t-T]——环比增长率分析周期性变化避免周期性变化给数据分析带来的影响T一般以周为单位 移动平均 filter(x, filter, methodc(convolution, recursive), side2,...)——线性过滤函数x待转化的向量数据methodconvolution卷积方法:使用x内部样本组成线性模型系数ai由filter参数设置的side参数设置卷积方法是单边或者双边recursive递归方法:使用y内部样本以及当前阶段的x样本组成线性模型系数ai由filter设置y递归[t]x[t]sum(ai*y[t-i])。side为1单边卷积y卷积[t]a1*x[t]...a(k1)*x[t-k]side为2双边卷积y卷积[t]a1*x[tm]...a(m1)*x[t] 指数平滑: sol-HoltWinters(data)——实现二次平滑和三次平滑指数。 sol.forst-forecast.HoltWinters(sol, h12)——预测HoltWinters函数产生的模型的新时间序列h表示频率预测未来12个月 plot.forecast(sol.forst, include10)——绘制预测图include10表明绘制预测前10个月的数据和未来12个月的预测数据 ARIMA模型 ymd()——lubridate包将年-月-日格式的字符串转换成日期对象可以比较前后时间 自相关性 cov(data.frame(x,y))——协方差矩阵S cor(data.frame(x,y))——相关系数矩阵R rnormnmeansd arima.simn100listarma——模拟100个样本的模拟序列 lag.plot(datalagkdo.lineFALSE)——绘制原始数据和k阶滞后的散点图 acfdatalag.max16ci.typema——计算并绘制自相关图0阶自相关系数是rxx所以恒等于1。ci.typema主要是慨率acf的标准误的问题以使acf图等准确。 pacfdatalag.max16——偏自相关图消除Xt-1...Xt-k1的影响后研究Xt和Xt-k的相关性。 Box.testdata,typeLjung-Box,lag16fitdfpq——自相关性检验p-value0.05标识数据data具有自相关fitdf为自由度参数pq arimadataordercpdq——计算模型参数并建模TSA包中order设置AR过程的阶数p差分过程的d用于稳定化和MA过程的阶数q。当pd0时表示只使用MA过程对序列建模。结果sol-arima调用predict(soln.ahead5)$pred进行预测n.ahead参数用于设置预测新阶段的数据量未来5个月predict(...$se标准误差SE用于计算预测范围预测范围预测值-置信度alpha*标准误差SE。 eacf(data)——根据凸显中三角区域顶点的行坐标和列坐标分别确定ARMA的p和q norm.test——正态性检验p-value0.05为正态 tsdiagsol——绘制模型残差的散点图、自相关图和不同阶数下的Box.test体检验p-value值 模型评估 RMSElm which——qpcR包中计算均方根误差计算子集subset 聚类分析distxmethod”euclidean“——计算距离 ”euclidean“Euclid距离 ”maximum“——Chebyshev距离 ”manhattan“绝对值马氏距离 “canberra”Lance距离 “minkowski”Minkowski闵式距离 “binary”定性变量的距离 scale(x, center TRUE, scale TRUE)——中心化与标准化center是中心化scale是标准化。全选减去均值再除以标准差 hclustd,method“complete”——系统聚类d是又dist构成的距离结构method是系统聚类的方法默认为最长距离法 “single”最短距离法“ ”complete“最长距离法 ”median“中间距离法 ”mcquitty“Mcquitty相似法 ”average“类平均法 ”centroid“重心法 ”ward“离差平法和法 plothclisthang0.1——谱系图hang表示谱系图中各类所在的位置hang取负值时表示谱系图从底部画起。 as.dendrogramhclusthang-1——将hclust得到的对象强制转换为谱系图 plotxtypec”rectangle“”triangle“horizFALSE——谱系图x为as.dendrogram返回的对象type是指是矩形或是三角形horiz是逻辑变量当horiz为TRUE时表示谱系图水平放置。 as.dist()——将普通矩阵转化为聚类分析用的距离结构 plclustxhang0.1——谱系图旧版停用已被plot替换 rect.hclustxkhborder——在谱系图plclust中标注聚类情况确定聚类个数的函数x是由hclust生成的对象k是类个数h是谱系图中的阈值要求分成的各类的距离大于hborder是数或向量标明矩形框的颜色例如rec.hclusthclust()k3 kmeans(xcentersiter.maxnstart1algorithm)——K均值方法centers是聚类的个数或者是初始类的中心iter.max为最大迭代次数默认为10nstart是随机集合的个数当centers为聚类的个数时algorithm为动态聚类算法例如km-kmeans(scale(data),4,nstart20)返回值中size表示各类的个数means表示各类均值Clustering表示聚类后分类情况可以用sort(kmeans()$cluser)对分类情况排序 主成分分析princomp() 和 prcomp——主成分分析结果的标准差显示每一个主成分的贡献率成分方差占总方差的比例返回值loadings每一列代表每一个成分的载荷因子 summaryxloadingsFALSE——提取主成分的信息x是princomp得到的对象loadings是逻辑变量为TRUE表示显示主成分分析原始变量的系数False则不显示。返回表中Standard deviation是标准差即方差或lambda的开方Proportion of Variance表示方差的贡献率Cumulative Proportion表示累积贡献率。 loadings(x)——显示主成分或因子分析中loadings载荷的内容主成分是对应割裂即正交矩阵Q因子分析中是载荷因子矩阵。x是princomp或者factanal得到的对象。 predictxnewdata——预测主成分的值x是由princomp得到的对象newdata是由预测值构成的数据框当newdata为默认值时预测已有数据的主成分值。例如predict(pca)[,1]——用主成分的第一列作为原有数据的预测结果 screeplot(xtypecbarplot,”lines“))——主成分的碎石图确定主成分维数的选择x是由princomp得到的对象type是描述画出的碎石图的类型”barplot“是直方图”lines“是直线图。 biplotxchoices1:2scale1——画关于主成分的散点图和原坐标在主成分下的方向x是由princomp得到的对象choices选择主成分默认为第1、2主成分 factanalx,factor,covmatNULLscoresc(none,regression,Bartlett)rotation”varimax“——因子分析,factors是公因子的个数covmat是样本协方差和相关矩阵,scores因子得分方法rotation表示旋转默认为方差最大旋转 cancorxyxcenterTRUEycenterTRUE——典型相关分析xcenterycenter是逻辑变量为TRUE时做数据中心化 R包 rpart——决策树算法 my_tree - rpartformuladatamethod——rpart(Survived ~ Sex Age, datatrain, methodclass) rattle rpart.plot RColorBrewer fancyRpartPlot(my_tree)——绘制更好看的决策树 ggplot2—— 绘图包 qplot(vecter_horizontal, vector_vertical, color factor )——绘图类似plot dplyr——输出处理包 tbl_df——将数据转换为一种特殊的数据框类型tbl类似as.data.frame仅是改变了显示数据结构没有变化 glimpsetbl——类似str hflights——飞行数据 数据集 data——查看R自带数据列表 iris——鸢尾花数据集总共150行3种类别 iris3[1:50, 1:4, 1:3]——每50行一组分3个类别分别 volcano——87x61 matrix with elevation value 模型函数 神经网络 nnet()——在nnet包中BP神经网络存在一层的隐藏层。 参数 size0设置隐藏层中神经元数设置为0时表示建立一层神经网络没有隐藏层 Wts初始系数不设定则使用随机数设定 linout为TRUE时模型输出目标变量为连续型实数一般用于回归分析如果为FALSE默认取值则输出为逻辑数据一般用于目标变量为分类型分类分析也可以把linout设为TRUE再添加一个阶跃函数转为逻辑型输出。 maxit最大迭代次数iterations默认为100次一般尽量将maxit设置大于观测结果final value上显示的迭代次数。 skip是否跳过隐藏层如果为FALSE默认则不跳过 decay加权系数的衰减 隐藏层中神经单元数目的确定 支持向量机 svm()——e1071包中回归非线性 ksvm()——kernlab包中分类分类时用的默认参数树径向基核函数 多元自适应回归样条 mars()——mda包 earth()——earth包具有更多优势 决策树 RWeka包C4.5分类输入变量是分类型或连续型输出变量是分类型 J48() rpart包分类回归树CART算法输入、输出分类或连续变量 rpart——拟合树模型参数xval设置k折交叉验证 prune()——剪枝 party包条件推理决策树CHAID算法输入、输出分类或连续变量 ctree 随机森林 randomForest包分类与回归树的随机森林 randomForest()——随机森林预测分类估计变量的重要性通过计算每个变量被移除后随机森林误差的增加选择变量需要用到模型的信息但用其它模型来做预测 party包条件推理决策树的随机森林 cforest() 时间序列 ts——在stats包中创建一个时间序列 xts包——时间序列 xts(data,label)——时间数列可以是单元的也可以是多元的。data时间序列数据label时间标签。as.xts(read.zoo(abc.csv, header T)) seq.POSIXct() 和 Date——标识时间信息的规格的类 index() 和 time()——获取对象的时间标签 coredata()——获取时间序列的数值 贝叶斯分类 e1071包 nativeBayes——朴素贝叶斯分类器可以处理分类型和连续型自变量 knn knn——class包 TTR包——技术指标集合 quantmod包——分析金融数据 tserise包 特殊字符 formulay~.——.是除y以外数据中的所有变量 functionfromula, train, test...——特殊参数“...,允许特定函数具有可变参数这个参数结构是一个列表用来获取传递给前三个命名参数之后的所有参数。这个结构用于给实际模型传递所需要的额外参数。 model.objectpars——模型对象的属性用操作符“”访问比如对象object的属性是pars 转载于:https://www.cnblogs.com/jiaxinwei/p/11482131.html