##附加题 斐波那契数列
##:(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}(又叫“比内公式”,是用无理数表示有理数的一个范例。)(√5表示根号5)
rm(list=ls(all=TRUE))
##方法1
fei1<-function(a,b,lim=5){ #递归,lim为要求输出的第lim个数字,PS:初始两个不算
fun1<-function(a,b,lim,fun){
c=a+b
if (lim==0) return(c)
else {
a=b
b=c
return(fun(a,b,lim-1,fun))
}
}
fun1(a,b,lim,fun1)
}
##方法2
fei2<-function(a,b,s){
for(i in 1:s){
c=a+b
a=b
b=c
}
return(c)
}
##3.1
data<-scan("C:\\3.1.txt")
##均值
mean(data)
##方差
var(data)
##标准差
sd(data)^2
##极差
max(data)-min(data)
##标准误
sm<-function(x){
n<-length(x)
sm<-sd(x)/sqrt(n) #输出的第s个数
return(sm)
}
##变异系数
CV<-function(x){
cv=(sd(x)/mean(x))*100
return(cv)
}
##偏度
G1<-function(x){
n<-length(x)
m<-mean(x)
s<-sd(x)
g1<-n/((n-1)*(n-2))*sum((x-m)^3)
return(g1)
}
##峰度
G2<-function(x){
n<-length(x)
m<-mean(x)
s<-sd(x)
g2<-((n*(n+1))/((n-1)*(n-2)*(n-3))*sum((x-m)^4)/s^4-(3*(n-1)^2)/((n-2)*(n-3))) return(g2)
}
##3.2
data<-scan("C:\\3.1.txt")
##直方图
hist(data,freq=F)
##密度估计曲线
lines(density(data),col="blue")
x<-60:88
lines(x,dnorm(x,mean(data),sd(data)),col="red")
##经验分布图
plot(ecdf(data),verticals=T,do.p=F)
x<-60:88
lines(x,pnorm(x,mean(data),sd(data)))
##QQ图
qqnorm(data)
qqline(data)
##3.3
data<-scan("C:\\3.1.txt")
##茎叶图
stem(data)
##箱线图
boxplot(data,notch=T,col="red")
##五数总括
fivenum(data)
##3.4
##W检验方法
data<-scan("C:\\3.1.txt")
shapiro.test(data)
##Kolmogorov-Smirnov检验方法
ks.test(data,"norm",mean(data),var(data))
##3.5
a<-c(2,4,3,2,4,7,7,2,2,5,4)
b<-c(5,6,8,5,10,7,12,12,6,6)
c<-c(7,11,6,6,7,9,5,5,10,6,3,10)
##1
boxplot(a,b,c,notch=T,names=c('A','B','C'),col=c(2,3,4))
##2
y<-c(2,4,3,2,4,7,7,2,2,5,4,5,6,8,5,10,7,12,12,6,6,7,11,6,6,7,9,5,5,10,6,3,10) f<-factor(c(rep(1,11),rep(2,10),rep(3,12)))
plot(f,y)
##生成日历
rm=(list=ls(all=TRUE))
##M=;W=;
month<-function(m){
if(m==1|m==3|m==5|m==7|m==8|m==10|m==12)
D=31
else if(m==4|m==6|m==9|m==11)
D=30
else
D=28
D
}
bt<-c("Sun","Mon","Tue","Wed","Thr","Fri","Sat")
yueli<-function(m,w){
a<-month(m)
if(w==7) w<-1
if(w!=1&w<7) w<-w+1
n<-1
s<-5
if (w>=6&a==31) s<-6 if (w==7&a!=28) s<-6 x<-array(NA,dim=c(s,7)) x[n,w]<-1
for(i in 2:a){ w=w+1
if(w==8) w<-1 if(w==1) n=n+1 x[n,w]<-i }
rbind(bt,x)
}