1. R 语言介绍
10 天从零入门数据挖掘R 语言
数组。在数据集中存储了各种数据。
型,字符型或逻辑型数据的一维数组
据挖掘方面特别有优势。
2. R 语言安装环境
R 语言是一种数据挖掘工具,是为了统计计算和图形显示而设计的语言环境,由
贝尔实验室,R 语言是免费的,也是在跨平台的,可以在windows,Linux,MacOS
和UNIX。R 是一个功能强大的软件,有高水平的制图功能,包括条形图,柱图,
线性图等等。R 也有R 标准包和各个专业领域的包,对我们在做数据分析和数
R 语言的下载地址为(https://www.r-project.org/)根据不同的操作系统选择不
同的下载镜像。本文是基于MAC 系统的,所以下载的是MAC 操作系统的R 版
本 。 R 语 言 还 要 安 装 一 个 Rstudio 的 工 具 , 下 载 网 址
(https://www.rstudio.com/products/rstudio/)。有了这个工具,我们在操作R
编程的对字体,界面等外观做修改时候更加方便,对于R 脚本保存也更简单,
因此,我们在下面的章节中使用的都是RStudio 工具编写脚本。
3. R 基础3.1.R 的数据集
R 数据集是指这样一个数据结构,以行表示规则,以列表示变量,通常是指矩形
3.2.R 的向量
概念:向量(vector),是R 语言最基本的数据类型,向量是用于存储数值
创建:1.C()函数创建向量;
2.冒号:生成向量序列;
3.seq()函数创建实数序列,创建有规律的实数序列。
使用方法:seq(length=,from=,to=)
length:指定生成个数
from:是指开始生成的点
to:截止点
如果不指定,则默认条件下:seq(N1,N2,BY=)
n1:开始位置
n2:截止位置
by=指定间隔
4.rep(常数,N) 重复向量常数,创建一个所有元素都相同的向量
5.sequence(),创建一系列连续的整数序列,每个序列以每个参数的数
值结尾。Sequence(4:5),123412345
6.gl()函数可以生成不同的水平因子序列,具体用法如下:
gl(n,k,length=n*k,labels=seq_len(n),ordered=FALSE)
Arguments
n
anintegergivingthenumberoflevels.
k
anintegergivingthenumberofreplications.
anintegergivingthelengthoftheresult.
length
labels
anoptionalvectoroflabelsfortheresultingfactorlevels.
ordered
alogicalindicatingwhethertheresultshouldbeorderedor
not.
多个元素,用多个数字访问。
函数:1.访问向量里的元素:通过方括号,单个元素就是数字,访问
2.typeof() 查看向量里的元素的类型
3.mode(x) 查看模式(变量类型)
R 不需要提前申明变量,大小写敏感,数组是从1 开始。
4.length(x) 获取向量的长度
5. 向量运算:
a.相加:循环补齐
b.相乘:两个向量中的元素按相同位置的元素相乘,长度不统一
的话默认补1 c.点积%*%
d. 取模%%
e. 求和sum(向量)
f. 最大值max(向量)
g. 最小值min(向量)
h. 平均值mean(向量)
i. 取值范围range(向量)
j. 排序sort(向量)
k. 反排列rev(向量)
rank(向量) 单元值大小排序
var(x)方差
prod(x)乘积,prod(1:n)阶乘
6.删除一个元素 向量[负号],表示删除第几个元素
7.all()和any().返回真或者假。all()表示所有条件都符合,any()表示
任意条件符合。8.NA 和NULL,NA 表示缺失值,NULL 表示空值,不被计算在内。
9.向量元素筛选,把满足条件的元素取出来
subset(向量,条件)自动把NA 剔除掉了
10.which(条件)找到满足条件的元素的位置
11.向量化的ifelse(条件,满足条件的执行,不满足条件的执行)
12.判断向量是否相等。
A.all(x==y),
B.identical(x,y)–判断类型和值
c.equal(x,y)–近似相等。
13.names().给向量元素命名
14.append(向量,插入值,after=位置) 在第几个位置插入数据到
向量中。 15.replace() 替换函数
16.state.name:
match(向量,state.name) 匹配
pmatch(向量,state.name) 部分匹配
必须相同。
先输入数据框名。
序因子两个类型。
符型,逻辑型)。
概念:矩阵是一个二维数组,每一个元素都拥有相同的模式(数值型,字
3.3.R 的矩阵
创建:1.matrix(data,nrow=,ncol=,byrow=F)函数创建,其中,data 是必须
填写的。Byrow=F 默认按列来排列数据。提取举证中的元素用[行数.列数]
2.diag() 创建对角矩阵或者单位阵
操作:1.矩阵乘法%*%
2.矩阵合并cbind(aa,bb),按列合并
3.矩阵合并rbind(aa,bb),按行合并
函数:dim(),获取行和列的维数
nrow(),获取行数
ncol(),获取列数
solve(),求逆矩阵
chol(),choleski 分解
svd(),奇异值分解
qr(),QR 分解
det(),求行列式
t() ,矩阵装置
dim(),给出行列数
apply(data,dim,function),dim=1 表示对行运用函数,取2 表示对列运
用函数对矩阵应用函数。Apply(xx,2,mean) =colMeans(xx) 列均值
Apply(xx,2,sum) =colSums(xx) 列求和
3.4. R 的数据框
创建:data.frame()来函数来创建。使用¥来提取数据框重点额元素,需要
3.5. R 的因子
概念:R 的因子Factor 是为了实现统计分类功能,它有两个内容,一个
是数据分类:levels,一个是数据。因子有辅助信息水平做为分类集合。因子的
元素是不同值的level 集的元素。根据类型来分类:因子水平是有普通无序和有
创建:factor(vector,levels=c(),ordered=TRUE).其中:levels 定义水平集合,
是一个整数向量,ordered 表示有序还是无序,区分普通因子和有序因子。
Ordered=TRUE 表示有序
函数:1.as.factor()可将数据转换为因子。
2.unclass()显示因子的分类,
操作:1.levels()提取水平的名称
2.为数据框设置因子变量
3.6. R 的列表
概念:数据框是把多种模式的数据放在一个举证中,同一行列的数据模式
基础是列表,列表元素的长度可以不相同。可以是单元素或者列表。
概念:R 列表是指R 的一种数据结构,有元素和标签组成。R 语言数据库按 的
创建:1.list(tag1=compon1,tag2=compon2,...,tagR=componR)
2. vector(), mode=list
函数:1.mode()数据类型。
2.length()列表组件个数。
3.names()获得标签
操作:1.访问列表标签的方法
list$标签名
a.
list[[“标签名”]]
b.
c.
list[[元素]]
2.访问列表元素的方法
list$[标签名][ 元素下标范围s:t]
a.
b.
list[[标签编号]][元素下标范围s:t]
3.增加列表
a.标签名赋值 list$标签名=c()
b. 标签下标索引赋值list[[3]]=c()
4.删除列表元素 将列表标签设置为NULL
5.生成子列表[]
list[“标签名”]和list[编号]
6.合并多个列表c()或者list()
函数:1.unlist()把列表转换为向量。
2.is.recursive(x)可判断列表是否递归。
3.apply()获得标签
4.unnames()去掉元素标签。
5.is.list()返回值是否是列表
6.as.list() 转换产生列表
3.7 数组
概念:数组是类似矩阵的的数据结构,维度可以大于2,并且是数值型的向
函数:创建数组函数array(vector,dimensions,dimnames),其中,vector 表示
数组中的数据。Dimension 是一个给出了各个维度下标最大值的向量,dimnames
操作:查看数组结构dim(),attributes()
4.R 函数
1.typeof() 查看数据类型
2.class() 查看类型
3.str() 内部结构
4.summary()
4.1 数据管理
量。
是各维度名称标签的列表。
vector:向量
numeric:数值型向量
logical:逻辑型向量
character:字符型向量
list:列表
data.frame:数据框
C:连接为向量或列表
Length:求长度
Subset:求子集
Seq,from:to,sequence:等差序列
Rep:重复
NA:缺失值
NULL:空对象
Sort,order,unique,rev:排序
Unlist:展平列表
Attr,attributes:对象属性
Mode,typeof:对象存储模式与类型
Names:对象的名字属性
4.2 字符串处理
character:字符型向量
nchar:字符数
substr:取子串
format:把对象用格式转换为字符串
paste,strsplit:连接或者拆分
charmatch,pmatch:字符串匹配
grep,sub,gsub:模式匹配与替换
4.3 复数
complex,Re,lm,Mod,Arg,Conj
4.4 因子
factor:因子
codes:因子的编码
levels:因子的各水平的名字
nlevels:因子的水平个数
cut:把数值型对象分区间转换为因子
table:交叉频数表
split:按因子分组
aggregate:计算各数据子集的概括统计量
tapply:对”不规则”数组应用函数
4.5 数学相关计算
4.5.1 计算
+,-,*,/,^,%%,%/%:四则运算
ceiling,floor,round,signif,trunk,zapsmall:舍入
max,min,pmax,pmin:最大最小值
rnage:最大值和最小值
数学函数
sum,prod:向量元素和积
cumsum,cumprod,cummax,cummin:累加,累乘
sort:排序
approx.和approxfun :插值
diff:差分
sign:符号函数
abs,sqrt:绝对值,平方根
log,exp,log10,log2:对数和指数函数
sin,cos,tan,asin,acos,atan,atan2:三角函数
sinh,cosh,tanh,asinh,acosh,atanh:双曲函数
fft,mvfft,convolve:傅立叶变换及卷积
polyroot:多项式求根
poly:正交多项式
alpine,splinefun:样条差值
deriv:简单表达式的符号微分或算法微分
4.3 数组
array:建立数组
matrix:生成矩阵
data.matrix:把数据框转换为数值型矩阵
lower.tri:举证的下三角部分
mat.or.vec:生成矩阵或向量
t:矩阵转置
cbind:把列合并为矩阵
rbind:把行合并为矩阵
diag:矩阵对角元素向量或生成对角矩阵
row:矩阵的行下标集
col:求列下标集
aperm:数组转置
nrow,ncol:计算数组的行数和列数
dim:对象的维向量
dimnames:对象的维名
row/colnames:行名或列名
%*%:矩阵乘法
crossprod:矩阵交叉乘积(内积)
outer:数组外积
kronecker:数组的Kronecker 积
apply:对数组的某些维应用函数
tapply:对“不规则”数组应用函数
sweep:计算数组的概括统计量
aggregate:计算数据子集的概括统计量
scale:矩阵标准化
matplot:对矩阵各列绘图
五、逻辑运算
四、线性代数
cor:相关阵或协差阵
Contrast:对照矩阵
solve:解线性方程组或求逆
eigen:矩阵的特征值分解
svd:矩阵的奇异值分解
backsolve:解上三角或下三角方程组
chol:Choleski 分解
qr:矩阵的QR 分解
chol2inv:由Choleski 分解求逆
<,>,<=,>=,==,!=:比较运算符
!,&,&&,|,||,xor():逻辑运算符
logical:生成逻辑向量
all,any:逻辑向量都为真或存在真
ifelse():二者择一
match,%in%:查找
unique:找出互不相同的元素
which:找到真值下标集合
duplicated:找到重复元素
optimize,uniroot,polyroot:一维优化与求根
六、优化及求根
程序设计
二、函数方面
一、控制结构
if,else,ifelse,switch:分支
for,while,repeat,break,next:循环
apply,lapply,sapply,tapply,sweep:替代循环的函数。
function:函数定义
source:调用文件
call:函数调用
.C,.Fortran:调用C 或者Fortran 子程序的动态链接库
Recall:递归调用
browser,debug,trace,traceback:程序调试
options:指定系统参数
missing:判断虚参是否有对应实参
三、输入输出
nargs:参数个数stop:终止函数执行
on.exit:指定退出时执行
eval,expression:表达式计算
system.time:表达式计算计时
invisible:使变量不显示
menu:选择菜单(字符列表菜单)
其它与函数有关的还有:delay,delete.response,deparse,do.call,dput,environment ,,
formals,format.info,interactive,
is.finite,is.function,is.language,is.recursive ,match.arg,match.call,match.fun,
model.extract,name,parse,substitute,sys.parent ,warning,machine
cat,print:显示对象
sink:输出转向到指定文件
dump,save,dput,write:输出对象
scan,read.table,load,dget:读入
ls,objects:显示对象列表
rm,remove:删除对象
q,quit:退出系统
.First,.Last:初始运行函数与退出运行函数。
options:系统选项
?,help,help.start,apropos:帮助功能
data:列出数据集
四、工作环境
统计分析
一、统计分布
每一种分布有四个函数:d――density(密度函数),p――分布函数,q――分位数函数,
r――随机数函数。
比如,正态分布的这四个函数为dnorm,pnorm,qnorm,rnorm
列出各分布后缀,前面加前缀d、p、q 或r 就构成函数名:
norm:正态
t:t 分布
f:F 分布
chisq:卡方(包括非中心)
unif:均匀
exp:指数
weibull:威布尔
gamma:伽玛