R语言中常用函数手册
来源:互联网 发布:单片机gsm模块有哪些 编辑:程序博客网 时间:2024/05/18 01:34
一、数据创建
1.expand.grid()
提供的向量或因子所有组合构成的数据框
expand.grid(h=c(60,80), w=c(100, 300), sex=c("Male", "Female"))
第一列就是括号内第一项数(字符)依次循环
第二列就是括号内第二项的数(字符)每个重复第一项数的个数之后循环
第三列就是括号内弟三项的数(字符)每个重复第一项数(字符)的个数乘以第二项的个数之后再循环
2.t()
行列转换
> a=matrix(1:30, 5,6)> a [,1] [,2] [,3] [,4] [,5] [,6][1,] 1 6 11 16 21 26[2,] 2 7 12 17 22 27[3,] 3 8 13 18 23 28[4,] 4 9 14 19 24 29[5,] 5 10 15 20 25 30> ta=t(a)> ta [,1] [,2] [,3] [,4] [,5][1,] 1 2 3 4 5[2,] 6 7 8 9 10[3,] 11 12 13 14 15[4,] 16 17 18 19 20[5,] 21 22 23 24 25[6,] 26 27 28 29 30
二、绘图
1.hist(x)
x的频数直方图
x = rowSums(expand.grid(1:6, 1:6))hist(x, breaks = seq(min(x) - 0.5, max(x) + 0.5, 1), main = "Number")#main = paste("Histogram of" , xname)
2.plot()
plot(x,y,xlim=c(0,100),ylim=c(0.4,1),type="o",lwd=2,col=2,pch=24,cex=1.5, yaxs="i",xaxs="i",xlab="Sample Ration(%)",ylab="Accuracy")
(1)x,y : 要画图的x轴内容和y轴内容(2)xlim,ylim: x轴和y轴的范围(3)type: 表示图的形状,是点、线、点线、阶梯线等等(4)lwd: 线的宽度(5)col: 颜色(6)pch: 点的形状(7)cex: 点的大小(8)yaxs,xaxa: plot默认画图时会在预留一部分坐标空间,设置为“i”后,就可以去掉预留空间(9) xlab,ylab:x轴和y轴的名称
3.lines()
lines(x,y,col="blue",type="o",lwd = 2,pch=5)#1.lines()函数做的是一般连线图,其输入是x,y的点向量,其功能相当于plot(x,y,type="1")。plot()函数被调用时即创建一副新图,而lines()函数是在已存在的图形上添加信息,并不能自己生成图形。
4.grid()
对图添加栅格
grid(nx=NA,ny=6,lwd=2)#1.nx,ny:分别表示x和y方向的虚线,当值为NA时,不对相应的方向分割,ny=6 表示将y轴等距分割为6段
5.abline()
添加一条直线
abline(h=0.85,col="black",lty=1,lwd=2)h: y轴方向的高度 v: x轴的位置#1.abline()函数做的是回归线,其输入是回归模型对象。(1)abline(a,b) 表示画一条y=a+bx的直线(2)abline(h=y) 表示画出一条水平直线(3)abline(v=x) 表示画出一条竖直直线(4)abline(lm.obj) 表示绘出线性模型得到的线性方程
6.legend
添加图例
legend("bottomright",legend=c("AC正确率","MI归一化互信息"),col=c("blue","red"),pch=c(5,24),lty=1)#1.bottomright:图例的位置legend: 内容lty: 线的类型
7.matplot()
矩阵图。矩阵图的名称来自于其参数类型,它可以针对一个矩阵将所有列以曲线的形式表达出来。
matplot(x, y, type = “p”, lty = 1:5,
lwd = 1, lend = par(“lend”), pch = NULL, col = 1:6,
cex = NULL, bg = NA, xlab = NULL, ylab = NULL,
xlim = NULL, ylim = NULL, …, add = FALSE,
verbose = getOption(“verbose”))
参数x和y为输入的矩阵,做图的方式是用x的列为横轴方向的变量,y的列为纵轴方向的变量,然后用这些列依次作散点图(x的第一列对y的第一列,x的第二列对y的第二列,依次类推);如果这两个参数有一个缺失,那么x将被1:nrow(y)代替,y被非缺失
的参数矩阵代替;注意两个矩阵要么有一个列数为1,要么列数相等,否则会报错;后面设置颜色、线型等样式的参数type、lty、lwd、pch、col、cex、bg
8.matlines()矩阵线
matlines(x, y, type = “l”, lty = 1:5, lwd = 1, pch = NULL,
col = 1:6, …)
三、分布
1.set.seed()
该命令的作用是设定生成随机数的种子,种子是为了让结果具有重复性。如果不设定种子,生成的随机数无法重现。
> x<-rnorm(10) #随机生成10个随机数> x[1] 0.3897943 -1.2080762 -0.3636760 -1.6266727 -0.2564784 1.1017795 0.7557815[8] -0.2382336 0.9874447 0.7413901> x<-rnorm(10) #再次随机生成10个随机数> x[1] 0.08934727 -0.95494386 -0.19515038 0.92552126 0.48297852 -0.59631064 -2.18528684[8] -0.67486594 -2.11906119 -1.26519802> set.seed(5) #设定种子> x<-rnorm(10) # 在设定种子的前提下生成10个随机数> x[1] -0.84085548 1.38435934 -1.25549186 0.07014277 1.71144087 -0.60290798 -0.47216639[8] -0.63537131 -0.28577363 0.13810822> set.seed(5) # 设定种子> y<-rnorm(10)> y[1] -0.84085548 1.38435934 -1.25549186 0.07014277 1.71144087 -0.60290798 -0.47216639[8] -0.63537131 -0.28577363 0.13810822> x == y[1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
从上面的例子可以发现,前两次生成的10个随机数都不一样。后两次在设定了相同的种子前提下,生成的随机数是相同的。
2.predict()
基本语法
predict(object, newdata)
object是已使用lm()函数创建的公式。
newdata是包含预测变量的新值的向量。
3.常用的连续分布函数
#若是人的身高是均值为70英寸,标准偏差为3英寸的正态分布随机变量,请计算一个人不高于65英寸的概率,即计算P(X<=65)的概率,X~N(70,3)> pnorm(65, mean=70, sd=3)[1] 0.04779035分布函数:P(X<=x)正态分布 pnorm(x, mean, sd)学生t分布 pt(x, df)指数分布 pexp(x, rate)卡方分布 pchisq(x, df)
四、帮助和基础
1.attach(x)
将x指向R的搜索路径;x可以是一个列表、数据库,或者是由save创建的R data file.使用search()来显示搜索路径。
三个函数均是为了简化代码量存在,举个简单的例子,一年级有三个小明,分别在不同的班级,但在attach(一班)和detach(一班)之间的所有代码提到小明都是一班的小明,这样不用每次写到小明的时候都得一班
同样的with()函数,所有的代码就只在括号内起作用,出了括号就不认人了;例如with(一班{小明})。他的缺点也很突出,如果来了一个新同学叫小红,则再with内,“小红<-新同学”,出了with就不知道小红是谁了。但“小红<<-新同学”这种赋值方法是可以在with外部生效的。
注:双箭头(<<-)表示给上一层环境中的变量赋值
id <- c(1,2,3)name <- c("Jack","Tom","Mark")age <- c(22,30,27)mydata <- data.frame(id,age,name)mydata> mydata id age name1 1 22 Jack2 2 30 Tom3 3 27 Mark
这里呢,变量mydata里面包含的是一个表格,若是想调用其中的数据该怎么办呢?
1.1 用“$”符号
> mydata$age[1] 22 30 27> mydata$age[3][1] 27
1.2 用attach()命令
> attach(mydata)The following objects are masked _by_ .GlobalEnv: age, id, name> age[1] 22 30 27> age[3][1] 27
1.3 利用with()函数
> with(mydata,{age})[1] 22 30 27#with()函数适用于当同名变量出现多次,避免程序定位错误的情况;但with也有个弊端,就是只在括号内部有效,在with()的括号内外,信息是完全隔绝的,所以当然不能够用with调用程序其他位置的变量
2.detach(x)
attach(x)的逆运算
3.str(a)
str()是structure(结构)的缩写,它能对任何R数据结构提供简洁明了的描述。
五、模型拟合
1.fitdistr
需要用到MASS包
> library(MASS)> fitdistr(dat, densfun = "weibull", lower = 0) shape scale 0.60543339 155.13116924 (0.06472455) (50.00658912)#第一行没有括号的数字是所拟合的参数
2.coef()
coef是一个通用的函数提取返回的对象建模功能模型系数。
六、检验
1.survreg()
适合参数生存回归模型
survreg(formula, data, dist, subset)
参数解释:
formula形如Y~X1+X2+X3,但注意生存分析中的应变量Y通常为Surv()函数处理的生存时间;data是数据在R中的名字,subset可以对数据进行筛选。
dist为因变量的分布,包括weibull(weibull分布)、exponential(指数分布)、gaussian(伽马分布)、logistic(logistic分布)、loglogistic(对数logistic分布)和lognormal(对数正态分布)。
ovarianhead(ovarian)fittest=survreg(Surv(futime,fustat)~ecog.ps+rx,ovarian,dist="exponential")summary(fittest)Call:survreg(formula = Surv(futime, fustat) ~ ecog.ps + rx, data = ovarian, dist = "exponential") Value Std. Error z p(Intercept) 6.962 1.322 5.267 1.39e-07ecog.ps -0.433 0.587 -0.738 4.61e-01rx 0.582 0.587 0.991 3.22e-01Scale fixed at 1 Exponential distributionLoglik(model)= -97.2 Loglik(intercept only)= -98 Chisq= 1.67 on 2 degrees of freedom, p= 0.43 Number of Newton-Raphson Iterations: 4 n= 26 #分析:p=0.43>0.05因此两条生存曲线分布无显著性差异
七、高级数据处理
1.expression()
expression函数可以有一个或多个参数,它把全部参数当成一个列表,每个参数都被转成一个表达式向量,所以它的返回值是表达式列表,每个元素都是表达式类型对象,返回值的长度等于参数的个数
R绘图函数对表达式中包含的函数名和它们的参数首先应用Tex文本格式化规则进行处理,这种规则的具体情况可以使用 ?plotmath 进行查看,主要是一些数学公式和符号的表示方法
main=expression(paste("Weibull-Fit ", hat(S)(t), " mit SE"))#plot函数中的标题
八、数学
1.集合运算
#首先对集合A,B,C赋值> A<-1:10> B<-seq(5,15,2)> C<-1:5#求A和B的并集> union(A,B) [1] 1 2 3 4 5 6 7 8 9 10 11 13 15#求A和B的交集> intersect(A,B)[1] 5 7 9#求A-B> setdiff(A,B)[1] 1 2 3 4 6 8 10#求B-A> setdiff(B,A)[1] 11 13 15#检验集合A,B是否相同> setequal(A,B)[1] FALSE#检验元素12是否属于集合C> is.element(12,C)[1] FALSE#检验集合A是否包含C> all(C%in%A)[1] TRUE> all(C%in%B)[1] FALSE
九、编程
1.ifelse
向量化的函数
> x <- 1:10> y <- ifelse(x>5, 0, 10) > y [1] 10 10 10 10 10 0 0 0 0 0#处理缺失值> x <- c(1, 2, NA, NA, 5) > x[1] 1 2 NA NA 5> x <- ifelse(is.na(x), 0, x) > x [1] 1 2 0 0 5
- R语言中常用函数手册
- R语言数据挖掘中常用函数
- R语言常用函数
- R语言常用函数
- R语言常用函数
- R语言常用函数
- R语言常用函数
- #R#R语言-常用一些函数杂记
- [R]R语言常用函数参考
- R语言常用函数参考
- R语言常用函数参考
- R语言之常用函数
- R语言之常用函数
- R 语言常用函数整理
- R语言常用函数参考
- R语言常用函数参考
- R 语言常用函数整理
- R语言常用函数参考
- Tensorflow-图像预处理
- 手把手教你Chrome浏览器安装Postman(含下载云盘链接)【转载】
- word中如何选中已经衬于文字下的形状
- hadoop-2.4.1伪分布式搭建出现的namenode无法启动的问题
- mongodb中的read concern和write concern
- R语言中常用函数手册
- 获取指定的class元素或者判断是否包含style
- 记录:Java序列化
- JS生成按钮以及onclick动作
- word2vec 中的数学原理详解(四)基于 Hierarchical Softmax 的模型
- Netty进行Socket编程(一)
- 程序员面试的一些知识点(一)
- APK瘦身套路-项目优化篇
- StackExchange.Redis官方文档(五)【事务】