R基础包中含有的函数种类很多,从计算功能上可以分为数学函数、概率函数、统计函数、矩阵运算函数、字符串函数、数据管理函数、逻辑判断函数、文件管理函数等。现在对上述函数进行简单的介绍,具体的更加复杂的操作可以自行参考R的帮助文档。
一、数学函数
数学函数在R中用于基础的数学运算,是统计分析的重要函数之一
| 函数名称及书写格式 | 函数用途 | 
|---|---|
| abs(x) | 计算x的绝对值 | 
| sqrt(x) | 计算x的平方根 | 
| ceiling(x) | 输出不小于x的最小整数 | 
| floor(x) | 输出不大于x的最大整数 | 
| trunc(x) | 忽略x的小数部分 | 
| round(x,digits=n) | 计算x四舍五入后n位小数的值 | 
| signif(x,digits=n) | 计算x四舍五入后n为数的值 | 
| sin(x)cos(x),tan(x) | 计算x的正弦、余弦、正切 | 
| log(x,base=n) | 计算以n为底的x的对数 | 
| log(x) | 计算x的自然对数 | 
| exp(x) | 计算x的指数函数 | 
二、概率函数
R中的概率函数主要可以实现计算概率密度函数(d)、计算累积概率(p),计算分位值(q),生成服从某分布的随机数(n)。
R的概率函数名有一个统一的命名规则,即上述四种运算的开头加上服从分布的英文缩写。这里给出各种分布的分布名称与英文缩写
| 分布名称 | 英文缩写 | 分布名称 | 英文缩写 | 分布名称 | 英文缩写 | 
|---|---|---|---|---|---|
| 贝塔分布 | beta | 几何分布 | geom | 二项分布 | binom | 
| 泊松分布 | pois | 正态分布 | norm | 负二项分布 | nbinom | 
| 柯西分布 | cauchy | 对数正态分布 | lnorm | Logistic分布 | logis | 
| 卡方分布 | chisq | 多项分布 | multinom | Gamma分布 | gamma | 
| t分布 | t | 均匀分布 | unif | Weibull分布 | weibull | 
| F分布 | f | 指数分布 | exp | Wilcoxon符号秩分布 | signrank | 
下面以正态分布为例,介绍一下R中的概率函数:
计算均值为n,标准差为m,的正态分布的随机变量等于x的密度值:dnorm(x,mean=n,sd=m)
计算均值为n,标准差为m,的正态分布的随机变量小于等于q的累积概率:pnorm(q,mean=n,sd=m)
计算均值为n,标准差为m,的正态分布的累计概率等于p的分位值:qnorm(p,mean=n,sd=m)
生成x个服从均值为n,标准差为m的正态分布随机数:rnorm(x,mean=n,sd=m)
三、统计函数
统计函数是R进行描述统计的基础,其用处特别广泛
| 函数名称及书写格式 | 函数用途 | 
|---|---|
| mean(x) | 计算x的均值 | 
| median(x) | 计算x的中位数 | 
| sd(x) | 计算x的样本标准差 | 
| var(x) | 计算x的样本方差 | 
| range(x) | 计算x的取值范围 | 
| max(x) | 计算x的最大值 | 
| min(x) | 计算x的最小值 | 
| length(x) | 计算x所包含的元素个数 | 
| sum(x) | 计算x的总和 | 
| prod(x) | 计算x的连乘积 | 
| cut(x,n) | 将x分为n组,并给出x各元素所在的组(水平) | 
| scale(x) | 将x标准化 | 
| rank(x) | 计算x的秩 | 
| cor(x1,x2) | 计算x1,x2的简单相关系数 | 
| cov(x1,x2) | 计算x1,x2的协方差 | 
| cumsum(x) | 计算x的累计和 | 
| cumprod(x) | 计算x的累计乘积 | 
| cummax(x) | 计算x的累计当前最大值 | 
| cummin(x) | 计算x的累计当前最小值 | 
| diff(x,lag=n) | 计算x滞后n项的差分 | 
| quantile(x,probs) | 计算x在probs分位点上的分位值 | 
四、矩阵运算函数
需要注意的是,矩阵运算符号%*%,这个符号用来计算矩阵的内积,即高等代数中经常使用的算法。有关的其它常用函数如下表:
| 函数名称及书写格式 | 函数用途 | 
|---|---|
| diag(x) | 创建行列数为x的单位矩阵;创建正对角元素取向量x的矩阵;输出矩阵的正对角元素 | 
| t(x) | 将矩阵x转置 | 
| solve(x) | 求矩阵x的逆 | 
| eigen(x) | 求矩阵x的特征值与特征向量 | 
| det(x) | 求矩阵x的行列式值 | 
| upper.tri(x,diag=TRUE/FALSE) | 取矩阵x的上三角部分,为真时包括对角元素 | 
| lower.tri(x,diag=TRUE/FALSE) | 取矩阵x的下三角部分,为真时包括对角元素 | 
| outer(x,y,FUN=函数名) | 计算向量x,y的外积,FUN指定运算符或函数 | 
五、字符串函数
字符串函数用于对R中存储类型为字符串的数据对象进行处理,现将常用的字符串函数列出如下:
| 函数名称及书写格式 | 函数用途 | 
|---|---|
| nchar(x) | 计算x中各个元素的长度 | 
| substr(x,n,m) | 取x中第n到m位的字符串 | 
| grep(p,x) | 计算p是在x的第几个元素 | 
| gsub(p,a,x) | 将x中的串p替换为串a | 
| strsplit(x,s) | 以s为分隔符分隔x | 
| paste(x,y,sep=s) | 以s为分隔符连接x和y | 
| toupper(x) | 将x中的小写字母转换成大写 | 
| tolower(x) | 将x中的大写字母转换成小写 | 
六、数据管理函数
数据管理函数在R中可以用来对向量、数据框等进行加工与管理操作,常用的数据管理函数如下:
| 函数名称及书写格式 | 函数功能 | 
|---|---|
| unique(x) | 返回除去向量(数据框)x中的重复元素后的数据 | 
| append(x,s,after=n) | 在向量x的第n个位置之后插入向量s | 
| sort(x,decreasing=TRUE/FALSE | 返回向量x升序或降序的结果,为真降序 | 
| order(x,decreasing=TRUE/FALSE) | 返回向量x升序或降序排序后的元素位置,为真时降序 | 
| rev(x) | 返回向量x的倒排结果 | 
| which(条件表达式) | 返回满足条件的元素 | 
| which.max(x) | 返回数值向量x的最大值首次出现的位置 | 
| which.min(x) | 返回数值向量x的最小值首次出现的位置 | 
| table(x) | 返回关于向量x的频数分布表 | 
| table(x1,x2) | 返回关于向量x1,x2的交叉列联表 | 
| colSums(x) | 计算矩阵或数据框x各列的合计(数值型) | 
| colMeans(x) | 计算矩阵或数据框x中各列的均值(数值型) | 
| rowSums(x) | 计算矩阵或数据框中各行的合计(数值型) | 
| rowMeans(x) | 计算矩阵或数据框中各方的均值(数值型) | 
| spply(x,FUN=函数名) | 对数据框x中各列分别计算FUN所指定的函数 | 
| lapply(x,FUN=函数名) | 对数据框x中各行分别计算FUN所指定的函数 | 
| tapply(x,INDEX=a,FUN=函数名) | 将数据框x按(列)域a的取值分成若干组后对指定列分组计算FUN指定的函数 | 
| aggregate(x,by=list(g1,g2,...),FUN=函数名...) | 依据g1,g2等的取值,对数据框x进行交叉分组并进行FUN指定的分类汇总 | 
| apply(x,MARGIN=1(2),FUN=函数名) | 对数据框x中各行(1)或列(2)分别计算FUN所指定函数 | 
| merge(x1,x2,by='关键字') | 依关键字将数据框x1,x1的域合并,合并后按关键字升序 | 
| sunset(set,关系表达式) | 提取数据框x中使关系式为真的数据子集 | 
| sample(x,size=n,prob=c(p1,p2,...)replace=TRUE/FALSE | 在向量x中随机抽取n个元素值,为真时表示放回随机抽样,p1,p2等为x各个元素的入样概率 | 
七、逻辑判断函数
逻辑判断函数用于对各种条件的判断,函数输出结果为逻辑值TRUE或FALSE,常用的逻辑判断函数如下:
| 函数名称及书写格式 | 函数用途 | 
| is.na(x) | 判断向量x中各个元素是否取缺失值NA | 
| complete.cases(x) | 判断x中各观测是否为缺失值 | 
| is.unsorted(x) | 判断向量x中各个元素是否未排序 | 
| any(逻辑向量x) | 判断逻辑向量x中是否至少有一个元素取值为TRUE | 
| x %in% y | 判断x的元素是否存在于y中 | 










