R语言之常用函数
对一般数据进行运算的常用函数:
数学函数:
1、round() #四舍五入
例:x <- c(3.1416, 15.377, 269.7)
round(x, 0) #保留整数位
round(x, 2) #保留两位小数
round(x, -1) #保留到十位
2、signif() #取有效数字(跟学过的有效数字不是一个意思)
例:略
3、trunc() #取整
floor() #向下取整
ceiling() #向上取整
例:xx <- c(3.60, 12.47, -3.60, -12.47)
trunc(xx)
floor(xx)
ceiling(xx)
4、logb(a, b) #以b为底的对数,省略b表示自然对数
log() #自然对数
log10() #以10为底的常用对数
例:logb(8, 2)
log(8); logb(8)
log10(100); logb(100, 10)
5、sqrt() #平方根
exp() #指数
6、sin() #正弦
cos() #余弦
tan() #正切
asin() #反正弦
acos() #反余弦
atan() #反正切
sinh() #双曲正弦
tanh() #双曲正切
7、nchar() #字符长度
例:xx <- 'China is a great country'
nchar(xx)
8、substring() #取子字符串
例:substring(xx, 1, 5)
9、paste() #连接字符
语法是:paste(..., sep = " ", collapse = NULL)
例1:x <- 'I'; y <- 'am'; z <- 'a'; d <- 'student'
paste(x, y, z, d)
例2:paste(c('x', 'y'), 1:4, sep = '')
例3:paste('x', 1:4, sep = '', collapse = '+')
------------------------------------------------------------------------------------------------------------------------------------------
10、计算
+, -, *, /, ^, %%, %/%:四则运算ceiling,floor,round,signif,trunc,zapsmall:舍入max,min,pmax,pmin:最大 最小值 range:最大值和最小值sum,prod:向量元素和,积cumsum,cumprod,cummax,cummin:累加、累乘sort:排序 approx和approx fun:插值diff:差分sign:符号函数
------------------------------------------------------------------------------------------------------------------------------------------
11、自己写函数程序流程
一、控制结构
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:列出数据集
-------------------------------------------------------------------------------------------------------------------------------------------
12、统计计算函数
一、统计分布
每一种分布有四个函数:d――density(密度函数),p――分布函数,q――分位数 函数,r――随机数函数。比如,正态分布的这四个函数为dnorm,pnorm,qnorm,rnorm。各分布后缀,前面加前缀d、p、q或r就构成函数名:
norm:正态
t:t分布
f:F分布
chisq:卡方(包括非中心)
unif:均匀
exp:指数
weibull:威布尔
gamma:伽 玛
beta:贝塔
lnorm:对数正态
logis:逻辑分布
cauchy:柯西
binom:二项分布
geom:几何分布
hyper:超几 何
nbinom:负二项
pois:泊松
signrank:符号秩
wilcox:秩和
tukey:学生化极差
二、简单统计量
sum, mean, var, sd, min, max, range, median, IQR(四分位间距)等为统计 量
sort,order,rank与排序有关
其它还有ave,fivenum,mad,quantile,stem等。
三、统计检验
R中已实现的有chisq.test,prop.test,t.test。
四、多元分析
cor,cov.wt,var:协方差阵及相关阵计算
biplot,biplot.princomp:多元数据biplot图
cancor:典则相关
princomp:主成分分析
hclust:谱系聚类:
kmeans:k-均值聚类
cmdscale:经典多维标度
其它有dist,mahalanobis,cov.rob。
五、时间序列
ts:时间序列对象 diff:计算差分 time:时间序列的采样时间 window:时间窗
六、统计模型
lm,glm,aov:线性模型、广义线性模型、方差分析
--------------------------------------------------------------------------------------------------------------------------------------------
13、其他
(1)rm(list = ls())
#清空控制台所有向量
(2)setwd("D:/ziliao/zhuanye/R bear/R code")
#设置工作目录
(3)library(Biostrings)
#调用程序包
(4)aa <- AAString("LANDEECQW")
#将一个字符向量转化成氨基酸序列aa
(5)typeof(aa)
#查看aa类型
[1] "S4"
#aa为S4方法类型
(6)write(aa,"chuana.txt")
#尝试将aa输出到文件chuana.txt中
(7)aa=as.character(aa)
#将aa转化为字符向量
(8)write(aa,"chuana.txt")
#再次输出
------------------------------------------------------------------------------------------------------------------------------------
奇葩函数
看别人的代码会遇到一些奇葩的函数,一般的教程上很少提到,但却有很好的用处,这类函数基本上分布在base以及utils包中,下面将它们略为归纳一下,以备后用。
1 文件执行:
在用R生成一个PDF文档后,如果想去打开它,你可能会在文件夹里找到再点开。再或者我们想调用系统中的其它程序来做点事情,可能要打开cmd敲点命令。实际上这都可以在R内部完成。举例来说用pandoc转换na.md成docx再打开它。
system('pandoc d:\\rspace\\na.md -o d:\\rspace\\na.docx')
shell.exec('d:\\rspace\\na.docx')
2 网络浏览:
browseURL:浏览某个指定的网页
download.file:下载网络文件到本地
3 文件操作
dir.create:新建一个文件夹
list.dirs:显示目录下的文件夹
list.files:显示目录下的文档
file.create:文档创建
file.exists:判断文档是否存在
file.remove:文档删除
file.rename:重命名
file.append:文档添加
file.copy:文档复制
file.symlink(from, to)
file.show:显示文档内容
file.info:显示文档信息
file.edit:编辑文档
zip: 压缩文件
unzip: 解压缩文件
4 运算进度条
在一个大循环运算时,如果可以看到目前的进度是比较方便的,txtProgressBar和setTxtProgressBar函数可以帮助做到这一点,下面是内置的一个小例子