#期末考试专项复习 #一、矩阵与数据框#1.生成特定的矩阵与数据框#矩阵#方法一a=array(1:10,dim=c(2,5))rownames(a)=1:2colnames(a)=c(”one”,"two”,"three","four",”five”)adimnames(a)=list(1:2,c(”one”,"two”,"three",”four”,"five”))nrow=nrow(a)ncol=ncol(a)dim(a)#方法二a=matrix(1:10,nrow=2,byrow=F)rownames(a)=1:2colnames(a)=c(”one","two",”three","four","five”)a=matrix(1:10,nrow=2,byrow=F,dimnames=list(1:2,c(”one","two”,”three”,"four",”five”)))#数据框的生成df=data。frame(Name=c("Alice”,"Becka”,”James","Jeffrey",”John"),Sex=c("F",”F","M”,"M”,"M”),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));dfLst=list(Name=c(”Alice”,”Becka”,"James",”Jeffrey","John”),Sex=c("F”,"F","M",”M”,”M”),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))LstLst[["Name”]]Lst[”Name”]Lst[1]Lst[[1]]Lst$Namedf=as.data.frame(Lst)dfx=array(1:6,dim=c(2,3))as。data。frame(x)#数据框的引用df[1:2,3:5]df[["Height”]]df$Weightnames(df)#此属性一定非空rownames(df)=c("one",”two","three”,”four",”five”)dfattach(df)r=Height/Weightrdf$r=rnames(df)detach()r=Height/Weight#2.矩阵的运算a=diag(1:3)a[2][1]=1a#1 转置运算t(a)#2 行列式det(a)#3 向量内积x=1:5y=2*1:5x%*%yt(x)%*%ycrossprod(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:3a*ba%*%bx%*%a%*%xcrossprod(a,b)#t(a)%*%btcrossprod(a,b)#a%*%t(b)#矩阵的逆solve(a)b=1:3solve(a,b)#ax=b 的解#矩阵的特征值与特征向量sm=eigen(a)sme=diag(1:3)svde=svd(e)svdeattach(svde)u%*%diag(d)%*%t(v)#与矩阵运算有关的函数#取维数a=diag(1:4)nrow(a)ncol(a)#矩阵的合并x1=rbind(c(1,2),c(3,4))x2=x1+10x3=cbind(x1,x2)x3x4=rbind(x1,x2)x4cbind(1,x1)#矩阵的拉直a=matrix(1:6,ncol=2,dimnames=list(c(”one”,”two","three”),c("first"...