R语言入门R是开源的统计绘图软件,也是一种脚本语言,有大量的程序包可以利用。R中的向量、列表、数组、函数等都是对象,可以方便的查询和引用,并进行条件筛选。R具有精确控制的绘图功能,生成的图可以另存为多种格式。R编写函数无需声明变量的类型,能利用循环、条件语句,控制程序的流程。R网络资源:R主页:://bm2.genes.nig.ac.jp/RGM2/index.php统计之都:://丁国徽的R文档:语言中文论坛一、用函数install.packages(),[直接输入就可以联网,第一次的话之后选择镜像,然后选择包下载即可]如果已经连接到互联网,在括号中输入要安装的程序包名称,选择镜像后,程序将自动下载并安装程序包。例如:要安装picante包,在控制台中输入install.packages(picante)已经安装了?二.安装本地zip包路径:Packagesinstallpackagesfromlocalfiles选择本地磁盘上存储zip包的文件夹。(文件,运行R的脚本,选择所在文档)三.调用程序包在控制台中输入如下命令library(“picnate”)程序包内的函数的用法与R内置的基本函数用法一样。四.程序包内部都有哪些函数?分别有什么功能?查询程序包内容最常用的方法:1菜单帮助Html帮助;2查看pdf帮助文档五.查看函数的帮助文件函数的默认值是什么?怎么使用?使用时需要注意什么问题?需要查询函数的帮助。1?t.test直接打开相关函数的说明和使用模板。2RGuiHelpHtmlhelp同样的效果,同上3apropos(t.test)合理使用T检验,五种模式的T检验4help(t.test)帮助同1-25help.search(t.test)有关T检验的一切东西都可以查出来。6查看R包pdf手册六、帮助很强大•lm{stats}#函数名及所在包•FittingLinearModels#标题•Description#函数描述•Usage#默认选项•Arguments#参数•Details#详情•Author(s)#作者•References#参考文献•Examples#举例七、R图形界面:Rcommander•1安装Rcommanderinstall.packages(Rcmdr)•2R将自动下载并安装Rcmdr所需的所有程序包调用RCommander图12Rcommander界面library(Rcmdr)八、R的函数R是一种解释性语言,输入后可直接给出结果。功能靠函数实现。函数形式:函数(输入数据,参数=)如果没有指定,则参数的以默认值为准。例如:平均值mean(x,trim=0,na.rm=FALSE,...)线性模型lm(y~x,data=test)每一个函数执行特定的功能,后面紧跟括号,例如:平均值mean();求和sum();绘图plot();排序sort()。除了基本的运算之外,R的函数又分为”高级”和”低级”函数,高级函数可调用低级函数,这里的”高级”函数习惯上称为泛型函数。如plot()就是泛型函数,可以根据数据的类型,调用底层的函数,应用相应的方法绘制相应的图形。这就是面向对象编程的思想。查询的方法:HelpHtmlhelppackageslog()log10()exp()sin()cos()tan()asin()acos()binom.test()fisher.test()chisq.test()friedman.test()mean()sd()var()glm(y~x1+x2+x3,binomial)….九、赋值与注释与对象起名-右边的值赋值给左边的变量或者对象;#注释注释部分不会编译R处理的所有数据、变量、函数和结果都以对象的形式保存。1.区分大小写,注意China和china的不同。2.不能用数字作为变量,对象也不能用数字开头,但是数字可以放在中间或结尾,如2result与result2,后者是合法的。3.建议不要用过短的名称。可以用”.”作为间隔,例如anova.result1。4.不要使用保留名:NA,NaN,pi,LETTERS,letters,month.abb,month.name十、元素与对象的类1.对象是由各元素组成的。每个元素,都有自己的数据类型。2.元素种类数值型Numeric如100,0,-4.335字符型Character如“China”逻辑型Logical如TRUE,FALSE因子型Factor表示不同类别复数型Complex如:2+3i3.对象的类class:因子(factor)因子是一个分类变量c(a,a,b,b,c)向量(vector)一系列元素的组合。如c(1,2,3);c(a,a,b,b,c)矩阵(matrix)二维的数据表,是数组的一个特例:x-1:12;dim(x)-c(3,4)[,1][,2][,3][,4][1,]14710[2,]25811[3,]36912数组(array)数组是k维的数据表(kin1:n,n为正整数)。向量(n=1)矩阵(n=2)高维数组(n=3)数据框(dataframe)是由一个或几个向量和(或)因子构成,它们必须是等长的,但可以是不同的数据类型。每个数据表可以看作一个数据框(dataframe)。每一行(row)作为一个记录(entry),每一列(column)作为一个向量(vector)。由很多不同类型的向量组成,如字符型,因子型,数值型。如何生成数据框?两种办法:(1)从外部数据读取;(2)各类型因子组合成数据框。列表(list)列表可以包含任何类型的对象。可以包含向量、矩阵、高维数组,也可以包含列表。十一、运算符数学运算运算后给出数值结果:+,-,*,/,^(幂)比较运算运算后给出判别结果:(TRUEFALSE):,,=,=,==(==是计算机编程的二元运算符。当左边的内容与右边的内容相同时,返回1。其余时候返回0。==是判断两个值大小是否相同的运算符。),!=不等于逻辑运算与、或、非:!,&,&&,|,||十二、数据的读取1.最为常用的数据读取方式是用read.table()函数或read.csv()函数读取外部txt或csv格式的文件。txt文件,制表符间隔;csv文件,逗号间隔。一些R程序包(如foreign)也提供了直接读取Excel,SAS,dbf,Matlab,spss,systat,Minitab文件的函数。2.read.csv()的使用例:test.data-read.csv(D:/R/test2.csv,header=T)header=T表示将数据的第一行作为标题。read.table(file=file.choose(),header=T)可以弹出对话框,选择文件。3.数据量较大时用read.table函数从外部txt文件读取第1步将Excel中的数据另存为.txt格式(制表符间隔)或.csv格式。第2步用read.table()或read.csv()函数将数据读入R工作空间,并赋值给一个对象。4.例子:mydataframe-read.csv(F:/KAGGLE1/train.csv,header=F)命名读取函数数据位置文件夹名称是否读取头(T/F)十三、向量、矩阵和数据框的创建有时需要对读入的数据进行操作,将某一向量转换成矩阵,如条件筛选,此时将遇到向量、矩阵和数据框的生成、条件筛选等。1.1四种类型的向量:字符型character-c(China,Korea,Japan,UK,USA,France,India,Russia);数值型numeric-c(1,3,6,7,3,8,6,4);逻辑型logical-c(T,F,T,F,T,F,F,T);复数型略。1.2创建向量——用X-c()函数或者c(),rep(),seq(),”:”c(2,5,6,9)rep(2,times=4)seq(from=3,to=21,by=3)[1]36912151821“:”1:15#意思是[1]123456789101112131415通过与向量的组合,产生更为复杂的向量。rep(1:2,c(10,15))1.3向量创建——产生随机数runif(10,min=0,max=1)rnorm(10,mean=0,sd=1)1.4几个随机数的相关函数概率密度dunif(x,min=0,max=1,log=FALSE)累积函数punif(q,min=0,max=1,…)分位数qunif(p,min=0,max=1,…)随机均匀分布runif(n,min=0,max=1)2.矩阵的创建生成矩阵的函数dim()和matrix()dim()定义矩阵的行列数,例如:x-1:12dim(x)-c(3,4)[,1][,2][,3][,4][1,]14710[2,]25811[3,]36912matrix.x-matrix(1:12,nrow=3,byrow=T)t(x)#转置为行或列添加名称:row.names()col.names()3.数据框的创建创建数据框的函数:data.frame(),as.data.frame(),cbind(),rbind()cbind()#按列组合成数据框rbind()#按行组合成数据框data.frame()#生成数据框head()#默认访问数据的前6行4.列表的创建列表可以是不同类型甚至不同长度的向量(数值型,逻辑型,字符型等等)、数据框甚至是列表的组合。list()例如list(character,numeric,logical,matrix.x)十四、对象类的判断与转换对象类型判断:mode()判断存储的类型class()判断数据的类根据数据的类,采用相应的处理方法。以下函数,主要用在函数处理异常时使用,目的是增强程序的稳健性。类型判断is.numeric()#返回值为TRUE或FALSEis.logical()#是否为逻辑值is.charactor()#是否为字符串is.null()#是否为空is.na()#是否为na类的转换as.numeric()#转换为数值型as.logical()#转换为逻辑型as.charactor()#转换为字符串as.matrix()#转换为矩阵as.data.frame()#转换为数据框as.factor()#转换为因子十五、元素引用与访问1.向量内的元素引用###Dalgaard书中的例子intake.pre-c(5260,5470,5640,6180,6390,6515,6805,7515,7515,8230,8770)intake.post-c(3910,4220,3885,5160,5645,4680,5265,5975,6790,6900,7335)intake.pre[5];#引用第5个元素intake.pre[c(3,5,7)]#引用第3,5,7个元素v-c(3,5,7);intake.pre[v];intake.pre[1:5];#引用第1到5个元素intake.pre[-c(3,5,7)]#去除第3,5,7元素2.数据框内元素的引用intake-data.frame(intake.pre,intake.post)引用数据框中的元素(1)$引用列,后面为列的名称例如intake$intake.pre(2)[,]方括号引用,逗号前为行,逗号后为列intake[,1];引用第1列intake[5,];引用第5行intake[5,1];引用第1列,第