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)
#}
#数据整合与重塑
#待研究
R 高级数据管理
最新推荐文章于 2020-03-06 10:38:44 发布