student<-c("John Davis","Angela williams","Bullwinkle Moose","David Jones","Janice Markhammer","Cheryl Cushing","Reuven Ytzrhak","Greg Knox","Joel England","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,stringAsFactors=FALSE) z<-scale(roster[,2:4]) z score <- apply(z,1,mean) roster<-cbind(roster,score) y<-quantile(score,c(.8,.6,.4,.2)) roster$grade[score>=y[1]]] <- "A" roster$grade[score<y[1] & score >=y[2]]] <- "B" roster$grade[score<y[2] & score >=y[3]]] <- "C" roster$grade[score<y[3] & score >=y[4]]] <- "D" roster$grade[score<y[4]]] <- "F" roster #数学和统计函数 #数学函数 #abs(x) #sqrt(x) #ceiling(x) #不小于x的最小整数 #floor(x) #不大于x的最大整数 #trunc(x) #取x的整数部分 #round(x,digits=n) #四舍五入 n表示小数点后的保留位数 #signif(x,digits=n) #四舍五入 n表示有效位个数,从高位起算。 #cos(x) sin(x) tan(x) #余弦、正弦、正切 #acos(x) asin(x) atan(x) #反(余弦、正弦、正切) #cosh(x) sinh(x) tanh(x) #双曲 (余弦、正弦、正切) #acosh(x) asinh(x) atanh(x) #反双曲 (余弦、正弦、正切) #log(x, base=n) #对x求以n为低的对数 #exp(x) #统计函数 #mean(x) #平均数 #Median(x) #中位数 #sd(x) #标准差 #var(x) #方差 #mad(x) #绝对中位差 #quantile(x,probs) #求分数位 #range(x) #求值域 #sum(x) #求和 #diff(x,lag=n) #滞后差分 #min(x) #求最小值 #max(x) #求最大值 #scale(x,center=TRUE,scale=TRUE) #为对象x按列进行中心化或标准化 #常用概率统计 #beta分布 beta #二项式分布 binom #柯西分布 cauchy #卡方分布 chisq #指数分布 exp #F分布 f #Gamma分布 gamma #几何分布 geom #超几何分布 hyper #对数正态分布 lnorm #Logistic分布 logis #多项式分布 multinom #负二项分布 nbinom #正态分布 norm #泊松分布 pois #Wilcoxon符号秩序分布 signrank #t分布 t #均匀分布 unif #Weibull分布 weibull #Wilcoxon秩和分布 wilcox #字符处理函数 #nchar(x) #计算x中的字符数量 #substr(x,start,stop) #提取字串 #grep(pattern,x,ignore.case=FALSE,fixed=FALSE) #在x中搜索某种模式, #sub(pattern,replacement,x,ignore.case=FALSE,fixed=FALSE) #strsplit(x,split,fixed=FALSE) #在split分割向量x #paste(...,sep="") #连接字符串,分隔符是 sep #toupper(x) 大写转换 #tolower(x) 小写转换 #其他实用函数 #lenth(x) #seq(from,to,by) #生成一个序列 #rep(x,n) #将x重复n次 #cut(x,n) #将连续型变量x分割成有着n个水平的银子 #pretty(x,n) #闯将完美分割点,通过选取n+1个等间距的取整值,将一个连续型变量x分割为n个区间, #cat(...,file="myfile",append=FALSE) # 连接。。。中的对象,并输出到屏幕上或文件中 x<-pretty(c(-3,3),30) y<-dnorm(x) plot(x,y,type="l",xlab="NormalDeviate",ylab="Density",yaxs="i") #循环和条件执行 #for # for (var in seq) statement for (index in 1:10) print (index) for (index in c(1,2,3,9)) print (index) #while # while (condition) statement i <- 10 while (i > 0) { print (i) i <- i - 1 } #条件 if (condition) statment if (condition) statment1 else statment2 ifelse(condition,statement1,statement2) #分支 switch(expr,...) feelings <-c("sad","afraid") for(i in feelings) print ( switch(i, happy= "I am glad you are happy", afraid = "There is nothing to fear", sad = "Cheer up", angry = "Calm down now" ) ) #自编函数 #myfuntion <- function(arg1,arg2,...) #有缺省值的参数必须放到最后 #{ # statements # return (object) #} #数据整合与重塑 #待研究