R语言与数据挖掘:公式;数据;方法

R语言特征

  1. 对大小写敏感
  2. 通常,数字,字母,. 和 _都是允许的(在一些国家还包括重音字母)。不过,一个命名必须以 . 或者字母开头,并且如果以 . 开头,第二个字符不允许是数字。
  3. 基本命令要么是表达式(expressions)要么就是 赋值(assignments)。
  4. 命令可以被 (;)隔开,或者另起一行。
  5. 基本命令可以通过大括弧({和}) 放在一起构成一个复合表达式(compound expression)。
  6. 一行中,从井号(#)开始到句子收尾之间的语句就是是注释。
  7. R是动态类型、强类型的语言。
  8. R的基本数据类型有数值型(numeric)、字符型(character)、复数型(complex)和逻辑型(logical),对象类型有向量、因子、数组、矩阵、数据框、列表、时间序列。

基础指令

  • 程序辅助性操作:

运行

q()——退出R程序
tab——自动补全
ctrl+L——清空console
ESC——中断当前计算

调试查错

browser() 和 debug()——设置断点进行,运行到此可以进行浏览查看(具体调试看browser()帮助文档(c,n,Q))
stop('your message here.')——输入参数不正确时,停止程序执行
cat()——查看变量?

帮助

help(solve)  ?solve 等同
??solve——检索所有与solve相关的信息
help("[[") 对于特殊含义字符,加上双引号或者单引号变成字符串,也适用于有语法涵义的关键字 if,for 和 function
help(package="rpart")——查看某个包
help.start()——得到html格式帮助
help.search()——允许以任何方式(话题)搜索帮助文档
example(topic)——查看某个帮助主题示例
apropos("keyword")——查找关键词keyword相关的函数
RSiteSearch("onlinekey", restrict=fuction)——用来搜索邮件列表文档、R手册和R帮助页面中的关键词或短语(互联网)RSiteSearch('neural networks')
  • 准备

文件目录设置

setwd(<dir>)——设置工作文件目录
getwd()——获取当前工作文件目录
list.files()——查看当前文件目录中的文件

加载资源

search()——通过search()函数,可以查看到R启动时默认加载7个核心包。
基础函数:数学计算函数,统计计算函数,日期函数,包加载函数,数据处理函数,函数操作函数,图形设备函数
     
setRepositpries()——选择软件库(CRAN,Bioconductor,R-Forge),寻找安装包的方法另看《【R笔记】寻找R的安装包》
(.packages())——列出当前包
(.packages(all.available=TRUE))——列出有效包
install.packages(“<package>”)——安装包
library()和require()——加载R包(package)至工作空间
 
data()——列出可以被获取到的存在的数据集(base包的数据集)
data(<datasets>,package=“nls”)——将nls包的datasets加载到数据库中

批处理文件和结果重定向

source("commands.R")——执行commands.R (存放批处理命令的)脚本文件。
cat(<Rcommond>,file="")——可以把R命令输出至外部文件,然后调用source函数进行批处理
 
do.call(<funcname>,<pars>)——调用函数,第一个参数<funcnames>指示调用函数字符串名称,第二个参数包含调用所需参数的一个列表<pars>
sink("record.lis")——把后续的输出结果从控制台重定向到外部文件 record.lis 中
sink()——把后续代码输出重新恢复到终端上展示
 
attach(<datafame>)——将数据框<datafame>中的变量链接到内存中,便于数据调用
detach()——对应attach(<datafame>),取消变量的链接,detach()里没有参数!
注:attach()detach()均是在默认变量搜索路径表中由前向后找到第一个符合变量名称,因此之前若存在重名变量,有可能会出现问题!!!
  • 数据处理

输入输出(读入输出数据、文件)

assign("x",c(1,2,3)) 和 x <- c(1,2,3)  c(1,2,3)->x ——向量赋值
 
read.table("infantry.txt", sep="\t", header=TRUE)——seq属性用其它字符分割,比如文本文件用空格(tab)分隔,header设置为文件中已经存在表头名称
read.csv("targets.csv")——读入csv(Comma 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',n=10)——读取文本文件,将文档转为以行为单位存放的list格式,比如读取读取wikipedia的主页html文件的前十行
 
write.table(Data, file="file.txt", row.names = FALSE, quote=FALSE)——输出,quote为FALSE去掉字符串类型的双引号,write.table(stasum, "stasum.csv",row.names = FALSE,col.name=FALSE,sep=",",append=TRUE)
write.csv(data,file="foo.csv",row.names=FALSE)——写成csv格式,row.names=FALSE去掉行号
 
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(list=ls())——删除工作空间的所有对象
methods(x)——查看x函数的源码,有些自带函数输入名称x可以直接看到,有一些需要调用methods方法才能查看函数x的源码,出现多重名,输入对应名称即可
 
str()——查看数据(框)中的数据总体信息(比如样本个数、变量个数、属性变量名称、类型)
nrow(dataframe)——查看数据集行数
NROW(vector)——查看向量的行数,等于length(x)
head(dataframe)——查看数据集前6行数据
tail(dataframe)——查看数据集尾6行数据
  • 向量特征
逻辑向量运算:
TRUE,FALSE——全部大写
isTRUE(x)——判断x为TRUE
*|,&,!——或且非,注意是单个不是&&!
ANY,ALL——任意,全部
 
数组和矩阵
train$var
train$new[train$var == NA] <- 1
Data[is.na(Data)] <- 0——数据框多维变量中给NA值赋值为0
 
apply(A,Margin,FUN,...)——A为矩阵,Margin设定待处理的维数,为1是横排(行),为2是竖排(列)做运算,Fun是运算函数
sweep(x,2,apply(x,MARGIN=1,mean),FUN)——对数组或者矩阵进行运算。 MARGIN=1表示行,2表示列;STATS统计量,如apply(x,MARGIN=1,mean),FUN函数运算默认为减法,“/”除法
y.vector<-with(data,get(yval))——表示在data数据框中读取列名称为yval的向量。
with(<data>,<colname|func>)——提取数据框中的某些参数做运算,对于数据框运算很方便
 

绘图

plot()——绘制图像
plot(<vecter_horizontal>, <vector_vertical>, pch=as.integer(<factors>),col,xlab,ylab)——用factors区分图像点的类型pch(圆的,三角,叉),col是颜色类别,xlab或者ylab对应横纵轴标题
legend(<location="topright">,legend=<vector_labelname>,pch=1:3,cex=1,col)——图例,<location>是位置(比如右上),<vector_labelname>图例类别标签名,pch是图例对应标签的类别id(向量),<cex>调整字体比例大小,颜色设置,legend("topright", levels(<factors>), pch=1:length(levels(factors)))
text(X,Y,labels=c(1,2,3),adj=1.2)——添加标注,X,Y是对应坐标的向量,labels是标记值,adj调整标注位置
abline(h = <int>,lty=2)——低级绘图添加一条水平线h或者是回归模型直线,垂线v;lty为2表示绘制虚线
abline(a,b)——画一条y=a+bx的直线
points(x,y)————低级绘图,画个点,坐标为向量x,y
lines(x,y)——低级绘图,画一条线,坐标为向量x,y
axis(side=1,at=seq(from=0.7,by=1.2,length.out=7),labels=c(...))——绘制坐标轴,低级绘图,side为2是纵坐标
 
barchart()——lattice包预先要对数据汇总
barplot(<vector>)——绘制柱状图,vector可增加名称。也可以绘制直方图,和hist()均分数据不太一样,需要用table()统计各个子分段下样本数量后在画图。
mosaicplot(x~y,main,color=T,xlab,ylab)——柱形对应关系图
contour(<matrix>)——创建等高线
persp(<matrix>,expand=0.2)——创建3D图,expand扩展值设置为0.2,否则为全屏扩展
image(volcano)——加载栅格(矩阵)图像
 
par(mfrow=c(1,2),oma,mar)——mfrow设置图形输出窗口为1行2列,添加car包?oma是所有图像距离边框的距离(底部,左边,顶部,右边),mar是每幅图像对边框的距离,默认是c(5, 4, 4, 2) + 0.1。
lines(data)——(低级)原图中画线,data是由散点(x,y)组成
rug(jitter(<data>),side =2)——检验离群点数据,rug()原图中执行绘图绘制在横坐标上,side为2是纵坐标,jitter(<data>)对绘制值略微调整,增加随机排序以避免标记值作图重合。
 
pairs(data)——数据框各个变量的散布图
coplot(y~x|a+b)——多个变量时的散点图,在a,b(向量或是因子)的划分下的y与x的散点图
scatterplotMatr()——散点图矩阵,car包
 
identify(<data>)——交互式点选,单击图形中的点,将会输出对应数据的行号,右击结束交互
stem(x,scale=1,width=80,atom=1e-08)——茎叶图,scale控制茎叶图的长度,为2即是以0~4为一组,5~9为一组将个位分成两部分,width是绘图宽度,atom是容差
boxplot()——箱图,研究变量的中心趋势,以及变量发散情况和离群值。上体顶部和底部为上下四分位数,中间粗线为中位数,上下伸出的垂直部分为数据的散步范围,最远点为1.5倍四分为点,超出后为异常点,用圆圈表示。boxplot(y~f,notch=TRUE,col=1:3,add=TRUE)#y是数据,f是由因子构成,notch是带有切口的箱型图,add=T图叠加到上一幅图。
plot(f,y)——箱线图,f是因子,y是与f因子对应的数值
bwplot(<factor> ~ <y>,data,ylab)——lattice包的箱图,绘制不同factor下的y的箱图(条件绘图,在某个因子取值集合下的y值变化)
bwplot(size~a1,data,panel=panel.bpplot,prob=seq(.01,.49,by=.01),datadensity=TRUE,ylab='')——Hmisc包的分位箱图
earth.count(na.omit(x),number=4,overlap=1/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控制图),监控异常点,前提是二项分布足够大后趋于正态分布
mosaic(<tab>,shade=T,legend=T)——绘制三级列联表,<tab>是三级列联表或者公式,vcd包
 
curve(sapply(x,<func>),<from>,<to>)——画曲线图,from和to设置横坐标取值范围

编辑

optim(c(0,0),<func>)——优化问题函数,c(0,0)是优化函数参数的初始值,返回值par是参数最优点值,value是参数的最优点时平方误差值,counts是返回执行输入函数func的次数以及梯度gradient的次数,convergence值为0表示有把握找到最优点,非0值时对应错误,message是一些其它信息。
curve(sapply(x,<func>),<from>,<to>)——画曲线图,from和to设置横坐标取值范围
 
sample(length(x),<size>,replace=F)——采样,生成向量x的随机顺序的大小为<size>的新向量;replace为False为不重复抽样,为True则重复抽样
Round ——取整。精确
ceiling()——取整,偏向数值小的
floor() ——取整,偏向数值大的
%/% ——整除
 
colnames(Data)[4]="value"——更换某一列名
edit()——编辑数据表格
fix()——
rm(x,y)——移除对象(变量)x和y
na.exclude(<data>)——移除缺失数据整行
na.omit(<data>)——删除缺失数据
attr(na.omit(<data>),"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(x,breaks=c(0,10,30),labels,ordered_result=F)——连续数据的离散化,将向量依据breaks区间分割为因子向量。labels设置返回因子向量的水平标签值,ordered_result为False生成的因子向量无大小意义,否则有大小意义
  • apply族函数
apply(A,MARGIN,FUN,...)——处理对象A是矩阵或数组,MARGIN设定待计算的维数,FUN是某些函数,如mean,sum
注:apply与其它函数不同,它并不能明显改善计算效率,因为它本身内置为循环运算。
按列?
lappy(dataframe,FUN,list(median,sd))——处理对象是向量、列表或其它对象,输出格式为列表list
sapply(dataframe$Filed,FUN)——与lapply()相似,输出格式为矩阵(或数据框)
按行?
tapply(X, INDEX, FUN, simplify = TRUE) ——处理分组数据, INDEX和X是有同样长度的因子,simplify是逻辑变(量默认为T)
aggregate(x~y+z, data,FUN)和by()——和tapply功能类似
 
其余参看:apply函数族
  • plyr库

ddply(Data,.(user_id,item_id),summarize,liulan=sum(liulan))——split-apply-combine的一体化函数;.(user_id,item_id)作为每行的一对标识ID(因子),前面的“.”号省略数据框名称;summrize是一个函数fun;liulan是一个变量,最后生成的数据框只有user_id,item_id,liulan三列。详情参见例子  R语言利器之ddply

transform(x,y)——将x和y的列转换成·一个数据框。
  • reshape库(reshape2)
melt(data,id.vars)——转换数据溶解。修改数据组织结构,创建一个数据矩阵,以id.var作为每行的编号,剩余列数据取值仅作为1列数值,并用原列名作为新数值的分类标记。
cast(data, userid~itemid,value="rattings",fill=0)——统计转换数据,生成矩阵,公式~左边的作为行表名,右边的作为列表名。之后可以用cor()计算每列数据之间的相关系数,并计算距离。
acast 和 dcast(data, userid~itemid,value.var="rattings")——同上,reshape2包,acast最后生成数组,dcase生成数据框。参见 R语言进阶之4:数据整形(reshape)
  • 字符串处理
nchar()——获取字符串长度,它能够获取字符串的长度,它也支持字符串向量操作。注意它和length()的结果是有区别的?什么区别
paste("a", "b", sep="")——字符串粘合,负责将若干个字符串相连结,返回成单独的字符串。其优点在于,就算有的处理对象不是字符型也能自动转为字符型。
strsplit(A,split='[,.]') ——字符串分割,负责将字符串按照某种分割形式将其进行划分,它正是paste()的逆操作。
substr(data,start,stop)——字符串截取,能对给定的字符串对象取出子集,其参数是子集所处的起始和终止位置。子集为从start到stop的下标区间
grep()——字符串匹配,负责搜索给定字符串对象中特定表达式 ,并返回其位置索引。grepl()函数与之类似,但其后面的"l"则意味着返回的将是逻辑值
regexpr(pattern,text)——从字符串text中提取特定的字符串的下标位置
gregexpr()——只查询匹配的第一个特定字符串的下标位置
gsub("a",1,<vector>)——字符串替代,负责搜索字符串的特定表达式,并用新的内容加以替代。
sub()函数——和gsub是类似的,但只替代第一个发现结果。
chartr( )——字符串替换函数
toupper( )、tolower( )及casefold( )——大小写转换函数
  • 控制流
if—else——分支语句
switch(index,case1,case2,casen)——index指示跳到第i个casei中
for(i in <vecter>)——循环语句,通过控制变量i
while——循环语句,通过设定循环范围
repeat—break——循环语句,无限循环,由break跳出

特殊数据对象

  • 向量特性
向量数组初始小标序号从1开始
向量增加元素可以直接通过“vector[n+1]<-0”方式增加
 
a<-c()——向量初始化
vector <- numeric(<int>)——创建初始向量<int>个数,并赋初值为0
length(vector)<- leg——修改对象长度为leg
names(vector) <- c("A","B","C")——给向量起名称
 
vector["A"]——通过名称访问对应元素
 a == c(1, 99, 3)——比较每一个元素对应是否相等
c(0,1)——创建向量,向量内元素类型应一致!
seq(5,9) 5:9 ——连续向量,等差数列
seq(5,9,0.5)——以0.5为间隔创建
seq(from,to,length,by)

数据索引

which(is.na(var) == T)——返回对应数组序号
which.max() 和 which.min()——返回数值类型中最大和最小元素下标
subset(<data>,<condition>,<colname>)——索引,<data>是数据,<condition>是索引条件,colnames指定索引列名
match(x,table,nomatch,incomparables)——匹配函数,返回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),.fun=function(x){transform(x[order(x$age,decreasing=TRUE),c(1:3)],ind=1:length(group))})
 
 
rank()——秩排序,有重复数字的时候就用这个,根据数值之间的远近输出序号
 
rev()——依据下标从后往前倒排数据
unique(<dataframe>)——返回无重复样本的数据集
duplicated(x)——查找重复数据,重复序号返回为TRUE

比较大小

pmin(x1,x2,...)——比较向量中的各元素,并把较小的元素组成新向量
pmax(x1,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为x,y重共有的元素,Fasle为y中没有。x和y是没有重复的同一类数据,比如向量集
 
Vectorize()——将不能进行向量化预算的函数进行转化
  • 矩阵
array(data=NA,dim=length(data),dimnames=null)——数组、矩阵初始化,dim是数组各维的长度dimnames是数组维的名字,默认为空,array(1:20, dim=c(4,5))。数组是多维的,dim属性设置维数
matrix(0, 3, 4)——0为赋初值,3行,4列,存储方式是先列后行!矩阵是二维的,用ncol和nrow设置矩阵的行数和列数。byrow设置存储方式(默认列优先),若为TRUE则以行优先
dim(<vector>)<- c(2,3)——设置矩阵为2行3列
dimnames()=list(c(<row>),c(<col>))——设置参数行和列的名称,以列表的形式进行输入
matrix[ ,4]——矩阵第4列
as.vector(matrix)——将矩阵转换成向量
a["name1","name2"]——矩阵以行和列的名称来代替行列的下标,name1是行名,name2是列名
 
rbind()——矩阵合并,按行合并,自变量宽度应该相等
cbind()——矩阵合并,安列合并,自变量高度应该相等
 
t()——矩阵转置
det()——行列式
solve(A,b)——求线性方程组Ax=b
solve(A)——求逆矩阵
eigen(A) ——求距阵的特征值与特征向量,Ax=(Lambda)x,A$values是矩阵的特征值构成的向量,A$vectors是A的特征向量构成的矩阵
*——矩阵中每个元素对应相乘
%*%——矩阵相乘
  • 因子
因子和向量的区别:
向量里面存的元素类型可以是字符型,而因子里面存的是整型数值对应因子的类别(levels)
as.integer(<factors>)——因子可以转化为整型
levels(<factors>)——查看因子类别
gl(n,k,length)——因子,n为水平数,k为重复的次数,length为结果的长度
factor(x,levels,labels)——因子
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。
  • 处理缺失数据na
1、将缺失部分剔除
2、用最高频率值来填补缺失值
3、通过变量的相关关系来填补缺失值
4、通过探索案例之间的相似性来填补缺失值
  • 公式
a:b——a和b的交互效应
a+b——a和b的相加效应
a*b——相加和交互效应(等价于a+b+a:b)
-b——去掉b的影响
1——y~1拟合一个没有因子影响的模型(仅仅是截距)
-1——y~x-1表示通过原点的线性回归(等价于y~x+0或者0+y~x)
^n——包含所有知道n阶的交互作用(a+b+c)^2==a+b+c+a:b+a:c+b:c
poly(a,n)——a的n阶多项式
I(x1+x2)——表示模型y=b(x1+x2)+a

数理统计

  • 基础知识

统计量

mean(x,trim=0,na,rm=FALSE)——均值,trim去掉x两端观测值的便利,默认为0,即包括全部数据,na.rm=TRUE允许数据中有缺失
weighted.mean(x,<weigth>)——加权平均值,weigth表示对应权值
median——中值
quantile(x,probs=seq(<start>,<end>,<diff>))——计算百分位数,是五数总和的扩展,probs设置分位数分位点,用seq(0,1,0.2)设置,表示以样本值*20%为间隔划分数据。
var()——样本方差(n-1)
sd——样本标准差(n-1)
cov——协方差
cor——相关矩阵
fivenum(x,na.rm=TRUE)——五数总括:中位数,下上四分位数,最小值,最大值

数学函数

sum(x,y,z,na.rm=FALSE)——x+y+z,na.rm为TURE可以忽略掉na值数据
sum(x>4)——统计向量x中数值大于4的个数
rep(“LOVE!”,<times>)——重复times次,rep(1:3,c(1,2,3))表示1个1,2个2,3个3组成的序列
sqrt()——开平方函数
2^2 和 **——“^”幂运算
abs()——绝对值函数
'%%'——表示求余 
'%/%'——求商(整数)
 
exp  : 2.71828…
expm1  : 当x的绝对值比1小很多的时候,它将能更加正确的计算exp(x)-1
log  : 对数函数(自然对数)
log10  : 对数(底为10)函数(常用对数)
log2  : 对数(底为2)函数
因为10>e>1,常用对数比自然对数更接近横坐标轴x
log1p()——log(1+p),用来解决对数变换时自变量p=0的情况。指数和对数的变换得出任何值的0次幂都是1
特性:对数螺旋图。当图像呈指数型增长时,常对等式的两边同时取对数已转换成线性关系。
 
sin  : 正弦函数
cos  : 余弦函数
tan  :  正切函数
asin  :  反正弦函数
acos  :  反余弦函数
atan  :  反正切函数
sinh  :  超越正弦函数
cosh  :  超越余弦函数
tanh  :  超越正切函数
asinh  :  反超越正弦函数
acosh  :  反超越余弦函数
atanh  :  反超越正切函数
logb  :  和log函数一样
log1px  :  当x的绝对值比1小很多的时候,它将能更加正确的计算log(1+x)
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,外积
%*%——内积,a1b1+a2b2+...+anbn=a*b*cos<a,b>,crossprod(x)表示x与x的内积。||x||2,矩阵相乘
%o%——外积,a*b*sin<a,b>(矩阵乘法,叉积),tcrossprod(x,y)表示x与y的外积。*表示矩阵中对应元素的乘积!

正态分布

dnorm(x,mean=0,sd=1,log=FALSE)——正态分布的概率密度函数
pnorm(x,mean=0,sd=1)——返回正态分布的分布函数·
rnorm(n,mean=0.sd=1)——生成n个正态分布随机数构成的向量
qnorm()——下分为点函数
 
qqnorm(data)——画出qq散点图
qqline(data)——低水平作图,用qq图的散点画线
qq.plot(<x>,main='')——qq图检验变量是否为正态分布

简单分析

summary()——描述统计摘要,和 Hmisc()包的describe()类似,会显示NA值,四分位距是第1个(25%取值小于该值)和第3个四分位数(75%取值小于该值)的差值(50%取值的数值),可以衡量变量与其中心值的偏离程度,值越大则偏离越大。
 
table(<datafame>$<var>)——统计datafame数据中属性变量var的数值取值频数(NA会自动去掉!),列联表
table(<data_var_1>, <data_var_2>)——比较两个data_var,<data_var_1>为列,<data_var_2>为行,先列后行!
xtabs(formular,data)——列联表
ftable( table())——三维列联表
prop.table()——统计所占百分比例
prop.table(table(<data_var_1>, <data_var_2>),<int>)——比较两个data_var所占百分比,<int>填1位按行百分计算,2为列计算
margin.table( table(),<int> )——计算列联表的边际频数(边际求和),<int>=1为按列变量
addmargin.table(table(),<int> )——计算列联表的边际频数(边际求和)并求和,<int>=1为按列变量
 
as.formula(<string>)——转换为一个R公式,<string>是一个字符串
循环时的判断语句:
ifelse(<test>, <yes>, <no>)——if,else的变种,test是判断语句,其中的判断变量可以是一个向量!yes是True时的赋值,no是False时的赋值
 
hist(<data>,prob=T,xlab='横坐标标题',main='标题',ylim=0:1,freq,breaks=seq(0,550,2))——prob=T表示是频率直方图,在直角坐标系中,用横轴每个小区间对应一个组的组距,纵轴表示频率与组距的比值,直方图面积之和为1;prob位FALSE表示频数直方图;ylim设置纵坐标的取值范围;freq为TRUE绘出频率直方图,counts绘出频数直方图,FALSE绘出密度直方图。breaks设置直方图横轴取点间隔,如seq(0,550,2)表示间隔为2,从0到550之间的数值。
 
density(<data>,na.rm=T)——概率密度函数(核密度估计,非参数估计方法),用已知样本估计其密度,作图为lines(density(data),col="blue")
ecdf(data)——经验分布函数,作图plot(ecdf(data),verticasl=FALSE,do.p=FALSE),verticals为TRUE表示画竖线,默认不画。do.p=FALSE表示不画点处的记号
  • 假设检验

分布函数

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(x,y,p)——Pearson拟合优度X2(卡方)检验,x是各个区间的频数,p是原假设落在小区间的理论概率,默认值表示均匀分布,要检验其它分布,比如正态分布时先构造小区间,并计算各个区间的概率值,方法如下:
brk<-cut(x,br=c(-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,p=p)

正态总体的均值方差

t.test(x,y,alternative=c("two.sided","less","greater"),var.equal=FALSE)——单个正态总体均值μ或者两个正态总体均值差μ1-μ2的区间估计;alternative表示备择假设:two.side(默认)是双边检验,less表示H1:μ<μ0,greater表示H1:μ>μ0的单边检验(μ0表示原假设);当var.equal=TRUE时,则是双样本方差相同的情况,默认为不同
var.test(x,y)——双样本方差比的区间估计

独立性检验(原假设H0:X与Y独立)

chisq.test(x,correct=FALSE)——卡方检验,x为矩阵,dim(x)=c(2,2),对于大样本(频数大于5)
fisher.test()——单元频数小于5,列联表为2*2

相关性检验(原假设H0:X与Y相互独立)

cor.test(x,y,method=c("pearson","kendall","spearman"))——相关性检验,观察p-value小于0.05则相关。method选择相关性检验方法

rank()——秩统计量
cor.test()——秩相关检验:Spearman,Kendall
wilcox.test(x,y=NULL,mu,alternative,paired=FALSE,exact=FALSE,correct=FALSE,conf.int=FALSE)——秩显著性检验(一个样本来源于总体的检验,显著性差异的检验),Wilcoxon秩和检验(非成对样本的秩次和检验),mu是待检测参数,比如中值,paired逻辑变量,说明变量x,y是否为成对数据,exact说民是否精确计算P值,correct是逻辑变量,说明是否对p值采用连续性修正,conf.int是逻辑变量,给出相应的置信区间。
 
uniroot(f,interval=c(1,2))——求一元方程根的函数,f是方程,interval是求解根的区间内,返回值root为解
optimize()或 optimise()——求一维变量函数的极小点
nlm(f,p)——求解无约束问题,求解最小值,f是极小的目标函数,p是所有参数的初值,采用Newton型算法求极小,函数返回值是一个列表,包含极小值、极小点的估计值、极小点处的梯度、Hesse矩阵以及求解所需的迭代次数等。

显著性差异检验(方差分析,原假设:相同,相关性)

mcnemar.test(x,y,correct=FALSE)——相同个体上的两次检验,检验两元数据的两个相关分布的频数比变化的显著性,即原假设是相关分布是相同的。y是又因子构成的对象,当x是矩阵时此值无效。
binom.test(x,n,p,alternative=c("two.sided","less","greater"),conf.level=0.95)——二项分布,符号检验(一个样本来源于总体的检验,显著性差异的检验)
 
aov(x~f)——计算方差分析表,x是与(因子)f对应因素水平的取值,用summary()函数查看信息
aov(x~A+B+A:B)——双因素方差,其中X~A+B中A和B是不同因素的水平因子(不考虑交互作用),A:B代表交互作用生成的因子
p.adjust()——P值调整函数
pairwise.t.test(x,g,p.adjust.method="holm")——多重t检验,p.adjust.method是P值的调整方法,其方法由p.adjust()给出,默认值按Holm方法(”holm“)调整,若为”none“,表示P值不做任何调整。双因素交互作用时g=A:B
shapiro.test(x)——数据的正态W检验
bartlett.test(x~f,data)——Bartlett检验,方差齐性检验
kruskal.test(x~f,data)——Kruskal-Wallis秩和检验,非参数检验法,不满足正态分布
friedman.test(x,f1,f2,data)——Friedman秩和检验,不满足正态分布和方差齐性,f1是不同水平的因子,f2是试验次数的因子
  • 常用模型

1、回归模型

lm(y~.,<data>)——线性回归模型,“.”代表数据中所有除y列以外的变量,变量可以是名义变量(虚拟变量,k个水平因子,生成k-1个辅助变量(值为0或1))
summary()——给出建模的诊断信息:
1、数据拟合的残差(Residual standard error,RSE),残差应该符合N(0,1)正态的,值越小越好
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、精简线性模型,向后消元法
 
线性回归模型基础
lm(formula=x~y,data,subset)——回归分析,x是因变量(响应变量),y是自变量(指示变量),formular=y~x是公式,其中若是有x^2项时,应把公式改写为y~I(x^2),subset为可选择向量,表示观察值的子集。例:lm(Y ~ X1 + X2 + I(X2^2) + X1:X2, data = data)
predict(lm(y~x),new,interval=“prediction”,level=0.95)——预测,new为待预测的输入数据,其类型必须为数据框data.frame,如new<-data.frame(x=7),interval=“prediction”表示同时要给出相应的预测区间
predict(lm(y~x))——直接用用原模型的自变量做预测,生成估计值
 
筛选模型自变量
lm.new<-update(lm.sol,sqrt(.)~.)——修正原有的回归模型,将响应变量做开方变换
update(<lm>, .~. - x1)——移除变量x1后的模型
coef(lm.new)——提取回归系数
回归诊断
1、正态性(QQ图)
plot(x,which)——回归模型残差图,which=1~4分别代表画普通残差与拟合值的残差图,画正态QQ的残差图,画标准化残差的开方与拟合值的残差图,画Cook统
norm.test()——正态性检验,p-value>0.05为正态
计量的残差图
residuals()和resid()——残差
rstandard()——标准化残差
rstudent()——学生化残差
influence.measures(model)——model是由lm或者glm构成的对象,对回归诊断作总括,返回列表中包括,广义线性模型也可以使用
 
anova(<lm>)——简单线性模型拟合的方差分析(确定各个变量的作用)
anova(<lm1>,<lm2>)——比较两个模型(检验原假设为不同)
 
2、误差的独立性——car包提供Duerbin_Watson检验函数
3、线性——car包crPlots()绘制成分残差图(偏残差图)可以看因变量与自变量之间是否呈线性
4、同方差性——car包ncvTest()原假设为误差方差不变,若拒绝原假设,则说明存在异方差性
5、多重共线性——car包中的vif()函数计算VIF方差膨胀因子,一般vif>2存在多重共线性问题
 
异常点分析(影响分析)
hatvalues()和hat()——帽子矩阵
dffits()——DFFITS准则
cooks.distance()——Cook统计量,值越大越有可能是异常值点
covratio()——COVRATIO准则
 
kappa(z,exact=FALSE)——多重共线性,计算矩阵的条件数k,若k<100则认为多重共线性的程度很小;100<=k<=1000则认为存在中等程度或较强的多重共线性;若k>1000则认为存在严重的多重共线性。z是自变量矩阵(标准化,中心化的?相关矩阵),exact是逻辑变量,当其为TRUE时计算精准条件数,否则计算近似条件数。用eigen(z)计算特征值和特征向量,最小的特征值对应的特征向量为共线的系数。
 
step()——逐步回归,观察AIC和残差平方和最小,广义线性模型也可以使用
add1()——前进法
drop()——后退法
stepAIC(sol,direction="backward")——MASS包,可以实现逐步回归(向前、向后、向前向后)
 
预测
predict(<sol>,<newdataframe>,level=0.95,interval="prediction")——回归预测,sol是模型,newdataframe是待预测数据框,level设置置信度,interval="prediction"表示结果要计算置信区间
 
glm(formula,family=binomial(link=logit),data=data.frame)——广义线性模型,logit默认为二项分布族的链接函数,formula有两种输入方法,一种方法是输入成功和失败的次数,另一种像线性模型的公式输入方式
predict(glm(),data.frame(x=3.5),type="response")——预测广义线性回归模型,type=“response”表示结果为概率值,否则为预测值y
inv.logit()——预测值y的反logit,boot包的函数
glmnet()——正则化glm函数,glmnet包,执行结果的行数越前正则化越强。其输出结果的意义是:
1)DF是指明非0权重个数,但不包括截距项。可以认为大部分输入特征的权重为0时,这个模型就是稀疏的(sparse)。
2)%Dev就是模型的R2
3)超参数(lambda)是正则化参数。lambda越大,说明越在意模型的复杂度,其惩罚越大,使得模型所有权重趋向于0。
 
plot(lm(y~x),which=1:4,caption=c(“Residuals vs Fitted”,“Normal Q-Q plot”,“Scale-Location plot”,“Cook's distance plot”))——画回归模型残差图,which为1表示画普通残差与拟合值的残差图,2表示画正态QQ的残差图,3表示画标准化残差的开方与拟合值的残差图,4表示画Cook统计量的残差图;caption是图题的内容。
 
avova(sol1,sol2,test="Chisq")——比较模型两个模型,广义线性模型可用卡方检验(分类变量),不拒绝原假设说明两个没有显著差异,即用较少自变量模型就可以。
非线性模型
poly(想,degree=1)——计算正交多现实,x是数值向量,degree是正交多项式的阶数,并且degree<length(x)样本个数,例如建立二次正交式回归模型:lm(y~1+poly(x,2))
 
nls(formula,data,start)——求解非线性最小二乘问题,formula是包括变量和非线性拟合的公式,start是初始点,用列表形式给出
nlm(f,p)——非线性最小二乘,构造最小目标函数,方程移项2为0,f是极小的目标函数,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,p=c(3,-0.1),x,y)

2、回归树

rpart( y ~., <data>)——rpart包,回归树,叶结点目标变量的平均值就是树的预测值。生成一棵树,再做修剪(防止过度拟合),内部10折交叉验证
 
printcp(<rt>)——查看回归树结果,rt是指rpart()函数的运行结果模型,plotcp(<rt>)以图形方式显示回归树的参数信息
参数如下:
    cp——当偏差的减少小于某一个给定界限值,默认0.01
    minsplit——当结点中的样本数量小于某个给定界限时,默认20
    maxdepth——当树的深度大于一个给定的界限值,默认30
 
prune(<rt>,cp)——自行设置cp值的建树
 
snip.rpart(<rt>, c(4,7))——修剪,需要修剪的那个地方的是结点号c(4,7),指出输出树对象来需要修剪的树的结点号
snip.rpart(<rt>)——交互修剪,点击结点,右击结束

3、随机森林

randomForest(y ~., <data>)——组合模型,由大量树模型构成,回归任务采用预测结果的平均值。

4、支持向量机

svm(<formula>,<data>,gamma=1/ncol(<data>),<cost>)——e1071包,回归任务,<gamma>=0.01,<cost>=100违反边际所引入的损失?

5、时间序列分析

ts(<data>, frequency=12, start=(2006,1))——把一个向量转化为时间序列对象,<data>向量,frequency表示频率,start表示时间起始点
 
decompose(<data>,type)——把时间序列分解成长期趋势和周期性变化,<data>是设置了频率(周期长度)的时间序列数据,type="additive"为累加形式:长期趋势+周期性变化+随机变化;"multiplicative"分解为累乘形式:长期趋势*周期性变化*随机变化。默认使用"additive"累加形式。函数返回值sol<-decompose()中,sol$trend是时间序列趋势,seasonal是季节性周期变化,random是随机误差。
 
stl(<data>,"per")——分解时间序列,返回值sol<-stl()中,sol$time.series[, "seasonal"]读取周期性序列seasonal,sol$time.series[, "trend"]读取长期趋势trend。误差可以使用sol$time.series[, "remainder"]读取。
 
增长率:
diff(data,lag=1)——差分,上下做差,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, method=c("convolution", "recursive"), side=2,...)——线性过滤函数,x待转化的向量数据,method=convolution(卷积方法):使用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(k+1)*x[t-k],side为2(双边卷积)y卷积[t]=a1*x[t+m]+...+a(m+1)*x[t]
 
指数平滑:
sol<-HoltWinters(<data>)——实现二次平滑和三次平滑指数。
sol.forst<-forecast.HoltWinters(sol, h=12)——预测HoltWinters函数产生的模型的新时间序列,h表示频率?预测未来12个月
plot.forecast(sol.forst, include=10)——绘制预测图,include=10表明绘制预测前10个月的数据和未来12个月的预测数据

ARIMA模型

ymd()——lubridate包,将"年-月-日"格式的字符串转换成日期对象,(可以比较前后时间)
自相关性
cov(data.frame(x,y))——协方差矩阵S
cor(data.frame(x,y))——相关系数矩阵R
rnorm(n,<mean>,<sd>)
arima.sim(n=100,list(ar=,ma=))——模拟100个样本的模拟序列
lag.plot(data,lag=k,do.line=FALSE)——绘制原始数据和k阶滞后的散点图
acf(data,lag.max=16,ci.type="ma")——计算并绘制自相关图,0阶自相关系数是rxx,所以恒等于1。ci.type="ma"主要是慨率acf的标准误的问题,以使acf图等准确。
pacf(data,lag.max=16)——偏自相关图,消除Xt-1,...,Xt-k+1的影响后,研究Xt和Xt-k的相关性。
Box.test(data,type="Ljung-Box",lag=16,fitdf=p+q)——自相关性检验,p-value<0.05,标识数据data具有自相关,fitdf为自由度参数p+q
arima(data,order=c(p,d,q))——计算模型参数并建模,TSA包中,order设置AR过程的阶数p,差分过程的d(用于稳定化)和MA过程的阶数q。当p=d=0时,表示只使用MA过程对序列建模。结果sol<-arima()调用predict(sol,n.ahead=5)$pred进行预测,n.ahead参数用于设置预测新阶段的数据量(未来5个月),predict(...)$se标准误差SE,用于计算预测范围(预测范围=预测值+-置信度(alpha)*标准误差SE。
eacf(data)——根据凸显中三角区域顶点的行坐标和列坐标分别确定ARMA的p和q
norm.test()——正态性检验,p-value>0.05为正态
tsdiag(sol)——绘制模型残差的散点图、自相关图和不同阶数下的Box.test体检验p-value值
 
模型评估
RMSE(lm,< which>)——qpcR包中计算均方根误差,计算子集subset
  • 聚类分析
dist(x,method=”euclidean“)——计算距离
”euclidean“Euclid距离;
”maximum“——Chebyshev距离;
”manhattan“绝对值(马氏)距离
“canberra”Lance距离;
“minkowski”Minkowski闵式距离;
“binary”定性变量的距离
 
scale(x, center = TRUE, scale = TRUE)——中心化与标准化,center是中心化,scale是标准化。(全选:减去均值,再除以标准差)
hclust(d,method=“complete”)——系统聚类,d是又dist构成的距离结构,method是系统聚类的方法(默认为最长距离法)
“single”最短距离法“;
”complete“最长距离法;
”median“中间距离法;
”mcquitty“Mcquitty相似法;
”average“类平均法
”centroid“重心法
”ward“离差平法和法
 
plot(hclist(),hang=0.1)——谱系图,hang表示谱系图中各类所在的位置,hang取负值时,表示谱系图从底部画起。
 
as.dendrogram(hclust(),hang=-1)——将hclust得到的对象强制转换为谱系图
plot(x,type=c(”rectangle“,”triangle“),horiz=FALSE)——谱系图,x为as.dendrogram返回的对象,type是指是矩形或是三角形,horiz是逻辑变量,当horiz为TRUE时,表示谱系图水平放置。
 
as.dist()——将普通矩阵转化为聚类分析用的距离结构
 
plclust(x,hang=0.1)——谱系图,旧版停用,已被plot替换
rect.hclust(x,k,h,border)——在谱系图(plclust())中标注聚类情况,确定聚类个数的函数,x是由hclust生成的对象,k是类个数;h是谱系图中的阈值,要求分成的各类的距离大于h;border是数或向量,标明矩形框的颜色;例如:rec.hclust(hclust(),k=3)
 
kmeans(x,centers,iter.max,nstart=1,algorithm)——K均值方法,centers是聚类的个数或者是初始类的中心,iter.max为最大迭代次数(默认为10),nstart是随机集合的个数(当centers为聚类的个数时),algorithm为动态聚类算法,例如:km<-kmeans(scale(data),4,nstart=20),返回值中,size表示各类的个数,means表示各类均值,Clustering表示聚类后分类情况?,可以用sort(kmeans()$cluser)对分类情况排序
  • 主成分分析
princomp() 和 prcomp()——主成分分析,结果的标准差显示每一个主成分的贡献率(成分方差占总方差的比例),返回值loadings每一列代表每一个成分的载荷因子
summary(x,loadings=FALSE)——提取主成分的信息,x是princomp()得到的对象,loadings是逻辑变量,为TRUE表示显示主成分分析原始变量的系数,False则不显示。返回表中,Standard deviation是标准差,即方差或lambda的开方,Proportion of Variance表示方差的贡献率,Cumulative Proportion表示累积贡献率。
loadings(x)——显示主成分或因子分析中loadings载荷的内容,主成分是对应割裂,即正交矩阵Q;因子分析中是载荷因子矩阵。x是princomp()或者factanal()得到的对象。
predict(x,newdata)——预测主成分的值,x是由princomp()得到的对象,newdata是由预测值构成的数据框,当newdata为默认值时预测已有数据的主成分值。例如predict(<pca>)[,1]——用主成分的第一列作为原有数据的预测结果
screeplot(x,type=c("barplot",”lines“))——主成分的碎石图,确定主成分维数的选择,x是由princomp()得到的对象,type是描述画出的碎石图的类型,”barplot“是直方图,”lines“是直线图。
biplot(x,choices=1:2,scale=1)——画关于主成分的散点图和原坐标在主成分下的方向,x是由princomp()得到的对象,choices选择主成分,默认为第1、2主成分
 
factanal(x,factor,covmat=NULL,scores=c("none","regression","Bartlett"),rotation=”varimax“)——因子分析,factors是公因子的个数,covmat是样本协方差和相关矩阵,scores因子得分方法,rotation表示旋转,默认为方差最大旋转
cancor(x,y,xcenter=TRUE,ycenter=TRUE)——典型相关分析,xcenter,ycenter是逻辑变量,为TRUE时做数据中心化
 
R包
rpart——决策树算法
my_tree <- rpart(<formula>,<data>,<method>)——rpart(Survived ~ Sex + Age,
                 data=train, method="class")
rattle
rpart.plot
RColorBrewer
fancyRpartPlot(my_tree)——绘制更好看的决策树
 
ggplot2—— 绘图包
qplot(<vecter_horizontal>, <vector_vertical>, color = <factor> )——绘图类似plot
 
dplyr——输出处理包
tbl_df()——将数据转换为一种特殊的数据框类型tbl,类似(as.data.frame()),仅是改变了显示,数据结构没有变化
glimpse(<tbl>)——类似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神经网络,存在一层的隐藏层。
参数:
size=0,设置隐藏层中神经元数,设置为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包
 

特殊字符

formula=y~.——"."是除y以外数据中的所有变量
function(fromula, train, test,...)——特殊参数“...",允许特定函数具有可变参数,这个参数结构是一个列表,用来获取传递给前三个命名参数之后的所有参数。这个结构用于给实际模型传递所需要的额外参数。
<model.object>@pars——(模型)对象的属性用操作符“@”访问,比如对象object的属性是pars

【转】R语言函数总结的更多相关文章

  1. R语言函数化学习笔记6

    R语言函数化学习笔记 1.apply函数 可以让list或者vector的元素依次执行一遍调用的函数,输出的结果是list格式 2.sapply函数 原理和list一样,但是输出的结果是一个向量的形式 ...

  2. R语言函数化学习笔记3

    R语言函数化学习笔记3 R语言常用的一些命令函数 1.getwd()查看当前R的工作目录 2.setwd()修改当前工作目录 3.str()可以输出指定对象的结构(类型,位置等),同理还有class( ...

  3. R语言函数化编程笔记2

    R语言函数化编程笔记2 我学过很多的编程语言,可以我写的代码很啰嗦,一定是我太懒了.或许是基础不牢地动山摇 1.为什么要学函数 函数可以简化编程语言,减少重复代码或者说面向对象的作用 2.函数 2.1 ...

  4. R语言函数化编程笔记1

    R语言函数化编程笔记1 notes:有一个不错的网站叫做stack overflow,有问题可以从上面找或者搜索答案,会有大佬相助. 在github上面可以找到很多R的扩展包,如果自己额修改被接受,那 ...

  5. R语言︱函数使用技巧(循环、if族/for、switch、repeat、ifelse、stopifnot)

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 后续加更内容: 应用一:if族有哪些成员呢?- ...

  6. R语言函数总结(转)

    R语言特征 对大小写敏感 通常,数字,字母,. 和 _都是允许的(在一些国家还包括重音字母).不过,一个命名必须以 . 或者字母开头,并且如果以 . 开头,第二个字符不允许是数字. 基本命令要么是表达 ...

  7. r语言 函数

    R语言实际上是函数的集合,用户可以使用base,stats等包中的基本函数,也可以自己编写函数完成一定的功能.但是初学者往往认为编写R函数十分困难,或者难以理解.这里对如何编写R函数进行简要的介绍. ...

  8. R语言函数

    函数是一个组织在一起的一组以执行特定任务的语句.R语言有大量的内置函数,用户也可以创建自己的函数. 在R语言中的函数是一个对象,所以R语言解释器为能够通过控制到该函数,带有参数可能是函数必要完成的操作 ...

  9. 【R笔记】R语言函数总结

    R语言与数据挖掘:公式:数据:方法 R语言特征 对大小写敏感 通常,数字,字母,. 和 _都是允许的(在一些国家还包括重音字母).不过,一个命名必须以 . 或者字母开头,并且如果以 . 开头,第二个字 ...

随机推荐

  1. Python 基础之字符串操作,函数及格式化format

    一.字符串的相关操作 1.字符串的拼接 + strvar1 = "我爱你,"strvar2 = "亲爱的姑凉"res = strvar1 + strvar2pr ...

  2. php后门拿下当前目录

    Weevely是一个模拟类似telnet的连接的隐形PHP网页shell.它是Web应用程序后期开发的必备工具,可以作为隐形后门程序,也可以作为一个web外壳来管理合法的Web帐户,甚至可以免费托管. ...

  3. keep-alive 用法 及activated,deactivated这两个生命周期函数

    keep-aliveProps: include - 字符串或正则表达式.只有名称匹配的组件会被缓存.exclude - 字符串或正则表达式.任何名称匹配的组件都不会被缓存.max - 数字.最多可以 ...

  4. 第3节 storm高级应用:1、上次课程回顾,今日课程大纲,storm下载地址、运行过程等

    上次课程内容回顾: ConcurrentHashMap是线程安全的,为什么多线程的时候还不好使,为什么还要加static关键字 1.storm的基本介绍:strom是twitter公司开源提供给apa ...

  5. RabbitMq学习笔记——概念

    1.RabbitMQ简介 MQ全称为Message Queue(消息队列),是一种“应用程序”<—>“应用程序”的通信方法.MQ是一个典型的“消费”<—>“生产者”模型的代表, ...

  6. java程序员的就业指导(重点)

    想要成为合格的Java程序员或工程师到底需要具备哪些专业技能,面试者在面试之前到底需要准备哪些东西呢?本文陈列的这些内容既可以作为个人简历中的内容,也可以作为面试的时候跟面试官聊的东西,你可以把这些内 ...

  7. 4 (计算机网络) DHCP与PXE:IP是怎么来的,又是怎么没的?

    如何配置 IP 地址? 那如何配置呢?如果有相关的知识和积累,你可以用命令行自己配置一个地址.可以使用 ifconfig,也可以使用 ip addr.设置好了以后,用这两个命令,将网卡 up 一下,就 ...

  8. php注册与登录

    一.注册 1.注册界面 <!DOCTYPE html><html lang="en"><head> <meta charset=" ...

  9. Django 数据库访问性能优化

    使用标准的数据库优化技术: 在进行Django数据库访问性能优化之前,首先应该使用标准的数据库技术对其进行优化,比如给字段加索引,通过使用 django.db.models.Field.db_inde ...

  10. centos 6.5安装NodeJS

    centos 6.5安装NodeJS 下载 可以在本地下载node.js最新版,然后通过ftp工具上传到服务器,或者直接在服务器终端使用wget命令下载(我当时下载的是node-v7.5.0-linu ...