最近在学习R语言,整理了一些函数
与包有关的函数 | |
source() | 载入自编函数和包 |
install.packages | 安装大部分的cran包,一般只安装一次、以后使用只需要载入 |
library | 载入已经安装的包,每次的重启代码都需要载入 |
require | 判断包是否加载,否就是直接加载。并返回T,若不存在则返回F |
设置工作路径的函数 | |
函数 | 功能 |
getwd() | 显示当前工作目录 |
setwd(“mydir”) | 修改当前工作目录 |
ls() | 列出当前工作看见的所有对象 |
rm() | 删除一个或多个对象 |
help(options) | 显示可用选项的说明 |
sava.image(“mgfile”) | 保存工作看见到文件mgfile.Rdata中 |
load(“mgfile”) | 读取一个工作看见mgfile.Rdata |
q() | 退出,并询问是否保存当前工作空间 |
辨别和转换数据对象类型的函数 | ||
数据类型 | 辨别函数 | 转换函数 |
character | is. character() | as. character() |
complex | is. complex() | as. complex() |
double | is. double() | as. double() |
integer | is. integer() | as. integer() |
logical | is. logical() | as. logical() |
NA | is.na() | as.na() |
numeric | is. numeric() | as. numeric() |
向量 | |
函数 | 作用 |
paste() | 把自变量对应元素连成一个字符串 |
Assign() | 对向量进行赋值 |
seq(from,to,by), from表示起始值,to表示序列终止值,by表示步长(默认步长为1) | 生成有规则序列 |
rep(),rep(x,time,…),x表示重复的对象,times表示重复的次数 | 函数可以用各种复杂的方式重复一个对象 |
length() | 返回向量的最大值 |
range() | 返回向量的范围 |
mode() | 返回向量的数据类型 |
min() | 返回向量的最小值 |
max() | 返回向量的最大值 |
which.min(),which.max() | 返回在第几个分量求导最小值和最大值 |
mean() | 求向量均值 |
median() | 求中位数 |
var() | 求方差 |
sd() | 求标准差 |
sort() | 排序,是升序 |
rev() | 将向量按原方向的反方向排列 |
rank() | 给出向量的秩 |
prod() | 求向量连乘积 |
append() | 为向量添加元素 |
replace() | 替换 |
match() | 匹配 |
pmatch() | 部分匹配 |
all() | 判断所有 |
any() | 判断部分 |
prod() | 积 |
outer(a,b,function) | 当function为空时表示a,b二个向量的外积 |
矩阵 | |
matrix(data=NA,nrow,nrol,byrow,dimnames) | 生成二维数组 |
t() | 求转置 |
crossprod(A,B) | 矩阵相乘 |
diag() | 生成以这样向量为对角元素的对角矩阵;当只输入一个正数时,则会生成对于维数的单位矩阵 |
solve() | 求逆 |
solve(a,b) | 解线性方程组ax=b,b默认是单位矩阵 |
chol() | 进行Choleskey分解;若矩阵为对称正定阵,可以利用Choleskey分解求行列式的值以及矩阵的逆 |
det() | 求行列式 |
svd() | 奇异值分解 |
rank() | 返回矩阵的阵 |
dim() | 求矩阵的维数 |
nrow() | 求行数 |
ncol() | 求列数 |
rowSums(),colSums | 求各行和, 求各列和 |
rowMeans(),colMeans() | 求行均值 |
lower.tri(),upper.tri() | 提取矩阵的上三角矩阵;下三角矩阵 |
tslag(x,k=1,train=False),x为严格向量,k为滞后期数 | 用于生成滞后序列 |
apply(X,MARGIN,FUN) | 进行各种计算 |
rbind(),cbind() | 对矩阵按照行或列进行合并 |
is.matrix() | 辨别是否是矩阵 |
as.matrix | 把非矩阵格式转换成矩阵格式 |
因子 | |
factor(x=character(),levels,labels=levels,exclude =NA,ordered=is.ordered(x)) | 创建因子 |
leve() | 列出因子水平 |
ordered() | 表示因子之间有大小顺序 |
列表 | |
list(变量1=分量1,变量2=分量2,…) | 创建列表 |
length() | 返回列表长度 |
mode() | 返回数据类型 |
names() | 返回列表里成分的名字 |
数据框(data frame) | |
data.frame(…,row.name=NULL,check.row=False,…) | 生成数据框 |
attach() | 把数据框“连接(绑定)”入当前的名字空间 |
函数与优化 | |
if/else语句 if(cond) statement_1 if(cond) statement_1 else statement_2 | 分支 语句 |
ifelse语句 ifelse(cond,statement1,statement2) | |
switch语句 switch(statement,list) | |
for(ind in expr_1) expr_2 ind是循环变量,expr_1是一个向量表示式,expr_2通常是一组表达式 | 循环 语句 |
while (condition) expr 当condition条件成立的时候,才执行expr | |
repeat expr repeat循环依赖break跳出循环 | |
函数名=function(参数1,参数2…){ statements return(object)} | 编写 函数 |
std() | 标准差 |
proc.time() | 返回当前R已经运行的时间 |
system.time(expr,gcFirst=True) | 计算程序运行时间的函数 |
optimize(f=,interval=,…,lower=min(interval), upper=max(interval),maximum=FALSE,tol= .Machine$double.eps^0.25) f是需要优化的函数;interval是参数搜索的区间;lower是参数搜索的下限,如果有缺失,用interval的最小值代替;upper是参数搜索的上限,缺失时用interval的最大值代替;maximum默认是FALSE,表示默认是求极小值;tol是精度的容忍度 | 一元的最优解求解函数 |
optim(par,fn,gr=NULL,…,method=c(“Nelder-Mead”,”BFGS&,”CG$,”LBFGS_BO&,”SANN”),control=list(),hessian=FALSE) par设定初始值,fn是需要优化的目标函数,gr是梯度向量,如果是NULL则由optim()计算所得的近似值替代。Lower是参数搜索的下限,默认为负无穷;upper是参数搜索的上限,默认是正无穷。Control是用来控制optim函数的一些参数,hessian=FALSA表示不需要返回海塞矩阵 | 多元函数的优化原则 |
constrOptim(theta,f,grad,ui,ci,mu=1e-04,control=list(),method=if(is.null(grad))”NelderMead” else ”BFGS”, outer.eps=1e-05,…,hessian=FALSE) theta是初始值向量;f是目标函数;grad是梯度向量,可以是空值NULL;ui是约束矩阵的左边系数矩阵;ci是约束矩阵的右边的值。 | 约束条件下的优化求解 |
随机数与抽样模拟 | |
runif(n,min=0,max=1) | 生成均匀分布随机数 |
set.seed() | 设定随机数种子 |
rnorm(n,mean=0,sd=1) | 正态分布随机数的生成函数 |
rexp(n,lamda=1) lamda=1/mean | 生成指数分布随机数 |
rbinom(n,size,prob) | 生成二项分,size表示进行贝努力实验的次数,prob表示一次贝努力实验成功的概率 |
cauchy() | 柯西分布 |
beta(a,b) | 贝塔分布 |
chisq(df) | 卡方分布 |
f(df1,df2) | F分布 |
gamma() | 伽玛分布 |
logis() | 逻辑分布 |
nbinom() | 负二项分布 |
mvnorm | 多元正态分布 |
pois() | 泊松分布 |
t() | t分布 |
分布函数相关函数及作用 | |
r- | 生成相应分布的随机数 |
d- | 生成相应分布的密度函数 |
p- | 生成相应分布的累积密度概率密度函数 |
q- | 生成相应分布的分位数函数 |
mvrnorm(n,mu,Sigma,tol,empirical=FALSE, EISPACK=FALSE).mu为均值向量,Sigma为协方差矩阵,empirical为逻辑参数,取TURE时,mu和Sigma取经验均值和协方差矩阵 | 多元正态随机数 |
pmvnorm(lower=-Inf,upper=Inf,mean=rep(0, length(lower)),corr=NULL,sigma=NULL,algorithm =GenzBrretz(),…) | 计算累积概率 |
rmvt(n,sigma=diag(2),df=1,delta=rep(0,nrow(sigma)), type=c(“shifted”,”Kshirsagar”,…)) | 多元t分布随机数 |
sample(x,n,replace=F,prob=NULL) x表示总体向量;n表示样本容量;replace=F表示无放回抽样,replace=T表示有放回抽样,默认为无放回抽样;prob设置各个抽样单元不同的入样概率 | 随机抽样 |