ID<-rep(c(1,2,3,4),each=8)
ID<-rep(1:4,each=8)
a<-seq(from=1,to=4,by=1)
rep(a,each=8)
结果都是一样的
用了1:4,则不用再用c()函数生成一个向量
用seq生成一个数列a,再用rep函数使得a中的每个数字重复8次
加上each是每个数值都是重复了8次,不加each直接8则是直接将向量循环8次,结果有不同
Wingcrd<-c(59,55,53.5,55,52.5,57.5,53,55)
Tarsus<-c(22.3,19.7,20.8,20.3,20.8,21.5,20.6,21.5)
Head<-c(31.2,30.4,30.6,30.3,30.3,30.8,32.5,NA)
Wt<-c(9.5,13.8,14.8,15.2,15.5,15.6,15.6,15.7)
Z<-cbind(Wingcrd,Tarsus,Head,Wt)
Z
利用c函数访问Z中的无序的列或行
Z[,c(1,3,4)],只包含第一第三第四列
Z[,c(-1,-3)],包含除去第一列和第三列的数据
分别存储行数与列数,即分别取得dim(Z)中第一个数值和第二个数值
Dmat<-matrix(nrow=8,ncol=4) #确定矩阵维数
Dmat
Dmat[,1]<-c(59,55,53.5,55,52.5,57.5,53,55) #赋值矩阵第一列的数值
Dmat[,2]<-c(22.3,19.7,20.8,20.3,20.8,21.5,20.6,21.5)
Dmat[,3]<–c(31.2,30.4,30.6,30.3,30.3,30.8,32.5,NA)
Dmat[,4]<-c(9.5,13.8,14.8,15.2,15.5,15.6,15.6,15.7)
Dmat
colnames(Dmat)<-c(“Wingcrd”,“Tarsus”,“Head”,“Wt”) #列向量命名
Dmat
rownames函数则是用于命名行向量
Dmat2<-as.matrix(Z),用as.matrix( )函数将对象变成矩阵形式,后续即可进行矩阵计算
数据框可以在不影响原始数据的基础上改变数据
数据框提取变量需要$
线性回归函数的所有结果都存储在M中,输入names(M)后可得存储在M的list中的各种变量名,再提取出想要得到的变量数值
各种数据存储的方法总结,当数据由cbind,matrix,或者data.frame存储时假设数据的每一行代表一个观察值(样本,案例)