欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    R语言(第一课)共13页word资料.doc

    • 资源ID:33830208       资源大小:322KB        全文页数:12页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    R语言(第一课)共13页word资料.doc

    如有侵权,请联系网站删除,仅供学习与交流R语言(第一课)【精品文档】第 12 页R语言基础篇简介:R语言在英文里写成R或R-project,最开始的时候,国内将R语言翻译成R软件,后来觉得不妥,翻译成R语言或R或环境,R语言是S语言的一种实现。S语言是国外学者开发的用来做数据探索、统计分析、作图的语言。R软件是一套完整的数据处理、计算和制图软件。用户可通过R软件的网站(http:/www.r_project.org)获得最新的R软件信息,并得到最新的应用统计软件包。说R是统计软件,还不如说是数学计算软件,因为它提供了若干统计程序包,各种数学计算、统计计算函数,包含了很多程序包。国外好多大学学生,学的统计工具都是R语言,而国内最早应用它的大学是清华大学,学生为了参加世界数学建模大赛,目前只有中国人大、广东暨南大学统计专业才有教授R语言课程,人大肖凯老师在网上讲授R语言课程目前比较畅销。R语言是一种用于开源免费的用于数据分析的计算环境,是用于统计分析、绘图的语言和操作环境,是一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。R语言参考书:R语言实用教程,薛毅,陈立萍编著,清华大学出版社,2014年10月第一版。1.下载安装R软件:R的网站:www.r-project.org,进入网站后出现画面:第一步:点击“CRAN”链接第二步:选择镜像china“ ”第三步:选择“Download R for Windows”根据你的操作系统选择第四步:选择“base”第五步:选择“Download R 3.2.0 for Windows”下载安装.完成.二. R基础(用help(), 或 ? 求帮助, getwd()获得R的当前工作目录,#是注释符)1. R有两个主要概念:对象和函数,用赋值运算符赋给对象内容。 赋值运算符赋:尖括号<和减号- 组成:<- R变量x <- 945xy <- 39yy <- 43 #刷新前面y的内容yz <- 5w <- z2wi <- (z*2 + 45)/2 #用赋值表达式赋给对象内容i(34 + 90)/12.5 #只想知道结果 ls() #知道当前对象rm(y) #删除当前对象,释放空间rm(z,w,i).完. R向量对象都有模式和长度属性,数据类型有:字符串、数值型、逻辑型、复数型。用小写c加括号建立向量,数值向量可以做四则运算v <- c(4,7,23.5,76.2,80)vlength(v) #长度mode(v) #模式c(1,2,3,4)>c(1,1,4,5) #向量做比较,产生的是逻辑向量F,T,F,F一个向量的所有元素必须具有相同的模式,即数据类型,否则强制转换v <- c(4,7,23.5,76.2,80,"rrt") #执行强制转换,字符值用单引号或双引号vu <- c(4,6,NA,2) # NA代表缺失值uk <- c(T,F,NA,TRUE)kv2 #向量的某个元素 v1 <- 'hello' vx <- vector() #创建空向量x3 <- 45xlength(x)x10x5 <- 4xv <- c(45,243,78,343,445,44,56,77)vv <- c(v5,v7) #创建向量子集v.完.# Vectorization R向量化函数的向量化,函数可以直接对向量的每个元素进行操作v <- c(4,7,23.5,76.2,80)x <- sqrt(v) #算术平方根xv1 <- c(4,6,87)v2 <- c(34,32,12)v1+v2v1 <- c(4,6,8,24)v2 <- c(10,2,4) #重复循环短的向量v1+v2v1 <- c(4,6,8,24)2*v1ages<-c(li=33,zhang=29,liu=18) #带字符下标的向量names(ages) #给向量各元素起名字ages“liu”或agesliu或ages3 #取向量某元素fruit<-c(5,10,1,20)names(fruit)<-c('orange','banana','apple','peach') #给向量取名字fruit与数值向量有关的函数max(x) # 求向量最大值min(x) # 求向量最小值range(x) # 求向量的范围sum(x) # 求向量各分量之和prod(x) # 求向量各分量之积length(x) # 求向量各分量的个数(维数).完.# Factors 因子因子处理分类数据,数据集中有取值个数固定的名义变量,因子特别有用,因子用水平来表示所有可能的数值。factor(x=character,levels,labels=levels,exclude=NA,ordered=is.ordered(x)X为数据向量,也是被转换成因子的向量,levels为可选向量,表示因子水平,当此参数取默认值时,由x元素中的不同值来确定,labels指定各水平名称,默认时取levels值,exclude为从x中删除的水平值,默认值NA,ordered为逻辑变量,取TURE为水平有次序,否则FALSE无次序。g <- c('f','m','m','m','f','m','f','m','f','f') #有10个人的性别向量gg <- factor(g) #把这个向量转换为因子g gg <- factor(c('m','m','m','m','m'),levels=c('f','m') #有5个男性,要与g有相同的水平(数值个数) gggg <- factor(c('m','m','m','m','m') #否则只有1个水平个数ggtable(g) # table()计算每个值的发生次数table(gg)is.factor(g) #查看对象是否为因子as.factor() #强制转化为因子levels(g) #查看因子的水平 g <- c(1,2,3,2,3,1,1,1) g <- factor(g) levels(g)<-c('I','II','III') #为因子的水平赋值 gg <- factor(c('f','m','m','m','f','m','f','m','f','f') a <- factor(c('adult','adult','juvenile','juvenile','adult','adult', 'adult','juvenile','adult','juvenile')t <- table(a) #统计各因子水平出现的频数t <- table(g) t <- table(a,g) # table()用于获取多个因子的交叉表margin.table(t,1) # a的水平数margin.table(t,2) # g的水平数prop.table(t,1) # 按行算总数,table(a,g)阵中的元素与总数比prop.table(t,2) # 按列算总数,table(a,g)阵中的元素与总数比prop.table(t) # 各元素总和算总数,table(a,g)阵中的元素与总数比 生成序列seq(),rep() ,gl()x <- 1:100010:15-1 #冒号优先10:(15-1)5:0 #递减seq(-4,1,0.5) # seq()生成实数序列,步长0.5seq(from=1,to=5,length=4) # 生成4个数seq(from=1,to=5,length=2)seq(length=10,from=-2,by=0.2) #从-2开始生成10个数,步长0.2rep(5,10) # 生成10个5rep('hi',3)rep(1:2,3)rep(1:2,each=3)gl(k,n)生成带有因子的序列,k因子水平个数,n每个水平的重复数gl(3,5)gl(2,5,labels=c('female','male') # labels代表因子数值名称rnorm(10) # 生成10个正态分布数# Indexing 数据子集x <- c(0,-3,4,-1,45,90,-5)x > 0 #结果是逻辑值xx>0 #结果是数值型xx <= -2 | x > 5xx > 40 & x < 100xc(4,6) #提取所在向量位置的元素x1:3 #提取前3个y <- c(1,4)xyx-1 #排除第1个x-c(4,6)x-(1:3)x<-0 #所有元素赋予0值x<-0 矩阵和数组矩阵:数组储存的是多维数据元素,矩阵是数组的特殊情况matrix(data=NA,nrow=1,ncol=1,byrow=FALSE,dimnames=NULL)参数data为数据向量,默认值为NA,当不输入该数据时,可生成一个初始矩阵,nrow为矩阵的行数,默认值为1,ncol为矩阵的列数,默认值为1,byrow为逻辑变量,当取值是TURE,矩阵按行放置,当取值是FALSE,矩阵按列放置,dimnames为矩阵的行和列的名称,用列表输入,默认为空。m <- c(45,23,66,77,33,44,56,12,78,23) mdim(m) <- c(2,5) #把向量组织为一个矩阵mm <- matrix(c(45,23,66,77,33,44,56,12,78,23),2,5) #使用更简单的命令,按列添m <- matrix(c(45,23,66,77,33,44,56,12,78,23),2,5,byrow=T) #按行添数mm2,3 #取矩阵元素m-2,1 #除去第2行,第一列所有元素m1,-c(3,5) #除去第3、5列,第一行所有元素m1,m,4#上面得到是向量m1,drop=F #得到是矩阵m,4,drop=Fcbind()、rbind()把矩阵分别按列、行结合起来m1 <- matrix(c(45,23,66,77,33,44,56,12,78,23),2,5)m1cbind(c(4,76),m1,4) #把矩阵按列结合m2 <- matrix(rep(10,20),4,5)m2m3 <- rbind(m11,m23,) #把矩阵按行结合m3results <- matrix(c(10,30,40,50,43,56,21,30),2,4,byrow=T)colnames(results) <- c('1qrt','2qrt','3qrt','4qrt') #给矩阵列起名rownames(results) <- c('store1','store2') #给矩阵行起名resultsresults'store1',results'store2',c('1qrt','4qrt')m <- matrix(c(45,23,66,77,33,44,56,12,78,23),2,5)m*3m1 <- matrix(c(45,23,66,77,33,44),2,3)m2 <- matrix(c(12,65,32,7,4,78),2,3)m1+m2#矩阵运算都是元素和元素的运算数组(Array):是多维的, 向量为一维数组,矩阵为二维数组。数组中的元素数据类型必须一致,建立数组方法:array(data=NA,dim=length(data),dimnames=NULL)参数data为数据向量,默认NA, dim为整数向量,表示各维长度,默认为data的长度,dimnames为各维名称,用列表形式给出,默认值为空。a <- array(1:20,dim=c(4,5)ab <- array(1:24,dim=c(3,4,2)bb1,3,2b1,2b3,4,bc(2,3),-2 # 取两行.完.列表list():不同元素可以不同数据类型,也可不同长度my.lst <- list(stud.id=34453, stud.name="John", stud.marks=c(14.3,12,15,19)my.lstmy.lst$stud.namemy.lst1my.lst1 #输出时不要列名my.lst3mode(my.lst)mode(my.lst1) #输出值的属性my.lst$stud.idnames(my.lst) #输出列表元素名称(属性)names(my.lst) <- c('id','name','marks') #给列表元素命名my.lstmy.lst$parents.names <- c("Ana","Mike") #给列表添加元素my.lstlength(my.lst) #统计列表成分个数my.lst <- my.lst-4 #删除列表成分other <- list(age=19,sex='male')lst <- c(my.lst,other)lstmy.lst <- list(stud.id=34453, stud.name="John", stud.marks=c(14.3,12,15,19)my.lst$parents.names <- c("Ana","Mike")my.lstunlist(my.lst) #将列表转换成向量.完.数据框data.frame()类似与excel表的数据结构,每列的数据类型可以不一致,但长度必须一致,列相当于属性,行相当于样本。df<- data.frame( Name=c('Alice','Becka','James','Jeffrey','John'), Sex= c('F','F','M','M','M'), Age=c(13,13,12,13,12), Height= c(56.5,65.3,57.3,62.5,59), Weight=c(84,98,83,84,99.5)df与数据框有关的函数: as.data.frame() #将对象(矩阵、列表)强制转换 #成数据框(各成分必须满足数据框要求) is.data.frame() #判断对象是否为数据框 x<-array(1:6,c(2,3) #如果矩阵原有列名,则为数据框列名,否则系统给出data.frame(x)数据框的调用:df1:2,3:5 df"Height"df$Weight数据框的命名:names(df)#定义数据框的变量名rownames(df)<- c("one","two","three","four","five") #定义数据框的各行名字attach()函数、with()函数 R语言主要通过数据框来输入和保存数据,attach()函数可以把数据框中的变量“连接”到内存中,便于数据框中数据的调用。它也可连接列表。attach(df)r<-Height/Weightrdf$r<-Height/Weight #把新变量赋值到数据框中dfdetach() #取消连接如果只做少量运算,也可用with()函数df$r<-with(df, Height/Weight)lapply()函数和sapply()函数:对列表和数据框进行运算lapply(X,FUN,.)sapply(X,FUN,.,simplify=TURE,USE.NAMES=TURE)X为列表或数据框,FUN为指定的运算函数,两函数用法相同,一个返回列表,一个返回数据框。df<- data.frame( Name=c('Alice','Becka','James','Jeffrey','John'), Sex= c('F','F','M','M','M'), Age=c(13,13,12,13,12), Height= c(56.5,65.3,57.3,62.5,59), Weight=c(84,98,83,84,99.5)lst<- list( Name=c('Alice','Becka','James','Jeffrey','John'), Sex= c('F','F','M','M','M'), Age=c(13,13,12,13,12), Height= c(56.5,65.3,57.3,62.5,59), Weight=c(84,98,83,84,99.5) lapply(lst3:5,mean) sapply(df3:5,mean)或lapply(lstc("Age","Height","Weight"),mean) sapply(dfc("Age","Height","Weight"),mean).完.对象和类. R是基于对象的语言,对象中包含我们需要的数据,并且对象具有很多属性,其中最重要的属性是类,基本的类是数值、逻辑、字符串,还有复合型的类,如矩阵、数组、数据框、列表,用class()观察类,用attributes()观察其属性, str()用于了解对象的详细情况。my.lst <- list(stud.id=34453, stud.name="John", stud.marks=c(14.3,12,15,19)class(my.lst)site=c('A','B','A','A','B')season=c('Winter','Summer','Summer','Spring','Fall')pH = c(7.4,6.3,8.6,7.2,8.9)my.dataset <- data.frame(site,season,pH)class(my.dataset)attributes(my.dataset)str(my.dataset).完.

    注意事项

    本文(R语言(第一课)共13页word资料.doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开