R语言实战学习笔记-第五章_第1页
R语言实战学习笔记-第五章_第2页
R语言实战学习笔记-第五章_第3页
R语言实战学习笔记-第五章_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第五章:高级数据管理5.2数值和字符处理函数l 数学函数ceiling(x)不小于x的最小整数round(x,digits=n)四舍五入,保留n位floor(x)不大于x的最大整数signif(x,digits=n)指定位数的有效数字trunc(x)去尾取整log(x,base=n)对x取底为n的对数l 统计函数mad(x)绝对中位差diff(x,lag=n)滞后差分quantile(x,probs)分位数scale(x,center=TRUE,scale=TRUE)为数据对象x进行中心化或标准化处理range(x)值域l 概率函数代码:设定随机数种子> runif(5) #生成0到1区

2、间上服从均匀分布的伪随机数1 0.18866859 0.37082322 0.01029355 0.73821923 0.42429211> runif(5)1 0.571422300 0.455645452 0.398581830 0.002924141 0.238183502> set.seed(1234) #显式指定伪随机数种子> runif(5)1 0.1137034 0.6222994 0.6092747 0.6233794 0.8609154> set.seed(1234)> runif(5)1 0.1137034 0.6222994 0.609274

3、7 0.6233794 0.8609154代码:生成多元正态数据> install.packages("MASS")> library(MASS)> options(digits=3)> set.seed(1234)> mean=c(230.7,146.7,3.6)> sigma=matrix(c(15360.8,6721.2,-47.1,6721.2,4700.9,-16.5, -47.1,-16.5,0.3),nrow=3,ncol=3)> mydata<-mvrnorm(500,mean,sigma)> mydat

4、a<-as.data.frame(mydata)> names(mydata)<-c("Y","x1","x2")l 字符处理函数nchar(x)计算x中的字符数量sub(pattern,replacement,x,ignore,case=F,fixed=F)在x中搜索文本并进行替换substr(x,start,stop)替换向量中的子串grep(pattern,x,ignore,case=F,fixed=ForT)在x中搜索某种模式,返回正则表达式或下标strsplit(x,split,fixed=F)分割字符向量

5、x的元素paste(,seq=”)连接字符转,分隔符为seqtoupper(x)大写转换tolower(x)小写转换l 其他函数length(x)x的长度cut(x,n)将x分割为n个因子seq(from,to,by)生成一个序列pretty(x,n)创建美观的分割点rep(x,n)将x重复n次cat(,file=”,append=F)连接中的对象并输出l n表示新行,t为制表符,为单引号,b为退格l 函数apply(),调用格式:apply(x,MARGIN,FUN,),MARGEN=1表示行,2为列5.3数据处理难题的一套解决方案代码:将学生的各科考试成绩组合为单一的成绩衡量指标,给予相对

6、名次给出从A到F的评分,根据学生的姓氏和名字的首字母对花名册进行排序。> options(digits=2)> student<-c("John Davis","Angela Williams","Bullwinkle Moose","David Jones","Janice Markhammer","Cheryl Cushing","Reuven Ytzrhak","Greg Knox","Joel Eng

7、land","Mary Rayburn")> math<-c(502,600,412,358,495,512,410,625,573,522)> science<-c(95,99,80,82,75,85,80,95,89,86)> english<-c(25,22,18,15,20,28,15,30,27,18)> roster<-data.frame(student,math,science,english,stringsAsFactors=F)> z<-scale(roster,2:4)> sc

8、ore<-apply(z,1,mean)> roster<-cbind(roster,score)> y<-quantile(score,c(.8,.6,.4,.2)> roster$gradescore>=y1<-"A"> roster$gradescore<y1&score>=y2<-"B"> roster$gradescore<y2&score>=y3<-"C"> roster$gradescore<y3&

9、amp;score>=y4<-"D"> roster$gradescore<y4<-"F"> name<-strsplit(roster$student)," ")> lastname<-sapply(name,"",2)> firstname<-sapply(name,"",1)> roster<-cbind(firstname,lastname,roster,-1)> roster<-rosterord

10、er(lastname,firstname),> roster5.4控制流5.4.1重复和循环l for结构for(var in seq) statement 例:for(i in 1:10) print(“Hello”)l while结构while(cond) statement 例:i<-10 while(i>0) print(“Hello”;i<-i-1)5.4.2条件执行l if-else结构if(cond) statementif(cond) statement1 else statement2l ifelse结构ifelse(cond,statement1,

11、statement2),若cond为TRUE,则执行第一个语句,否则执行第二个l switch结构swich(expr,),表示与expr的各种可能输出值绑定的语句5.5用户自编函数l 一个函数的大概结构:myfunction<-function(arg1,arg2,)statementreturn(object)代码:一个描述性统计量计算函数> mystats<-function(x,parametric=TRUE,print=FALSE)if(parametric)center<-mean(x);spread<-sd(x)elsecenter<-medi

12、an(x);spread<-mad(x)if(print&parametric) cat("Mean=",center,"n","SD=",spread,"n")else if(print&!parametric)cat("Median=",center,"n","MAD=",spread,"n") result<-list(center=center,spread=spread)return(result)

13、> set.seed(1234)> x<-rnorm(500)> y<-mystats(x)> y5.6整合与重构l 转置:t()函数,格式t(matrix)l 整合数据:aggregate(x,by,FUN),其中x是待折叠的数据对象,by是一个变量名组成的列表,这些变量将被去除掉以形成新的观测,而FUN则是用来计算描述性统计量的标量函数,它用来计算新观测中的值。l reshape包原始数据集IDTIMEX1X21156123521612224数据集的融合是将它重构为这样一种格式:每个测量(最后两列的值)变量独占一行,行中带有要唯一确定这个测量所需的标识符变量(ID,TIME以及观测属于X1还是X2)。>library(reshape)>md<-melt(mydata,id=(c(“id”,”time”)融合后的数据集IDTIME变量值11X1512X1321X16IDTIME变量值2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论