#期末考试专项复习 #一、矩阵与数据框
#1.生成特定的矩阵与数据框 #矩阵 #方法一
a=array(1:10,dim=c(2,5))
rownames(a)=1:2
colnames(a)=c(\a
dimnames(a)=list(1:2,c(\
nrow=nrow(a) ncol=ncol(a) dim(a) #方法二
a=matrix(1:10,nrow=2,byrow=F) rownames(a)=1:2
colnames(a)=c(\a=matrix(1:10,nrow=2,byrow=F,
dimnames=list(1:2,c(\)
#数据框的生成 df=data.frame(
Name=c(\Sex=c(\Age=c(13,13,12,13,12),
Height=c(56.5,65.3,57.3,62.5,59.0), Weight=c(84.0,98.0,83.0,84.0,99.5) );df
Lst=list(Name=c(\Sex=c(\Age=c(13,13,12,13,12),
Height=c(56.5,65.3,57.3,62.5,59.0), Weight=c(84.0,98.0,83.0,84.0,99.5)) Lst
Lst[[\Lst[\Lst[1] Lst[[1]] Lst$Name
df=as.data.frame(Lst)
df
x=array(1:6,dim=c(2,3)) as.data.frame(x) #数据框的引用 df[1:2,3:5] df[[\df$Weight
names(df)#此属性一定非空
rownames(df)=c(\df
attach(df)
r=Height/Weight r
df$r=r names(df) detach()
r=Height/Weight #2.矩阵的运算 a=diag(1:3) a[2][1]=1 a
#1转置运算 t(a)
#2行列式 det(a)
#3向量内积 x=1:5 y=2*1:5 x%*%y t(x)%*%y crossprod(x,y) #4向量的外积 x%*%t(y) tcrossprod(x,y) outer(x,y) x%o%y
#矩阵的乘法
a=array(1:9,dim=c(3,3)) b=array(9:1,dim=c(3,3)) x=1:3 a*b a%*%b
x%*%a%*%x
crossprod(a,b)#t(a)%*%b
tcrossprod(a,b)#a%*%t(b) #矩阵的逆 solve(a) b=1:3
solve(a,b)#ax=b的解
#矩阵的特征值与特征向量 sm=eigen(a) sm
e=diag(1:3) svde=svd(e) svde
attach(svde)
u%*%diag(d)%*%t(v) #与矩阵运算有关的函数 #取维数 a=diag(1:4) nrow(a) ncol(a)
#矩阵的合并
x1=rbind(c(1,2),c(3,4)) x2=x1+10
x3=cbind(x1,x2) x3
x4=rbind(x1,x2) x4
cbind(1,x1) #矩阵的拉直
a=matrix(1:6,ncol=2,
dimnames=list(c(\c(\as.vector(a) #apply函数 apply(a,1,mean) apply(a,2,sum)
tapply(1:5,factor(c(\#第二题 #产生随机数 x=rnorm(100,0,1) x
#画随机数的直方图 hist(x,freq=F) #核密度曲线 density(x)
lines(density(x),col=\
#添加正态分布分布函数 y=seq(-4,3,0.2)
lines(y,dnorm(y,mean(x),sd(x)),col=\#画随机数的经验分布函数 z=rnorm(50,0,1)
plot(ecdf(z),do.p=F,verticals=T) d=seq(-3,2,0.2)
lines(d,pnorm(d,mean(z),sd(z)),col=\y=rpois(100,2)
plot(ecdf(y),col=\x=0:8
lines(x,ppois(x,mean(y)),col=\
w=c(75,64,47.4,66.9,62.2,62.2,58.7,63.5,66.6,64.0,57.0,69.0 ,56.9,50.0,72.0) hist(w,freq=F)
lines(density(w),col=\x=44:76
lines(x,dnorm(x,mean(w),sd(w)),col=\plot(ecdf(w),do.p=F,verticals=T)
lines(x,pnorm(x,mean(w),sd(w)),col=\#编写函数求随机数的各种描述统计量 data_outline=function(x){ n=length(x) m=mean(x) v=var(x) s=sd(x)
me=median(x) cv=100*s/m
css=sum((x-m)^2) uss=sum(x^2)
R=max(x)-min(x)#样本极差
R1=quantile(x,3/4)-quantile(x,1/4)#四分位差 sm=s/sqrt(n)#样本标准误
g1=n/(n-1)/(n-2)*sum((x-m)^3)/s^3
g2=n*(n+1)/(n-1)/(n-2)/(n-3)*sum((x-m)^4)/s^4 -3*(n-1)^2/(n-2)/(n-3)
data.frame(N=n,Mean=m,Var=v,std_dev=s,
Median=me,std_mean=sm,CV=cv,CSS=css,USS=uss, R=R,R1=R1,Skewness=g1,Kurtosis=g2,row.names=1) }
x=rnorm(100) data_outline(x)
相关推荐: