向量(vector)
1、q():产生有规律的数列,间距省略时默认值为1。
例1:q(10,20,0.5)
例2:q(0,by=0.03,length=15)
2、rep():产生有规律的数列,重复第一个变量若干次。
例1:rep(1:3,1:3)
例2:rep(1:3,rep(2,3))
例3:rep(1:3,length=10)
送女生手表3、向量运算:一般是对应元素之间的运算,所以两个或多个向量运算时,要求它们包含的元素个素相同(或一个是另一个的整数倍)。
例1:a<-1:3;b<-4:6;a*b;b^a
例2:a<-1:3;b<-4:9;a*b;b^a
4、获取向量某一个或多个子集,向量前的负号"-"表示去除相应内容。
例1:x<-c(3,4,5,2,6);x[1:2];x[-(1:2)]
例2:x<-c(3,4,5,2,6);x[c(1,2,4,1)];x[-c(1,2,4,1)]
迎字开头的成语例3:xx<-q(1,by=3,length=10);xx[xx>13]
例4:x<-1:20;y<--9:11;x[y>(1)]#注意最后一个是"NA"
5、主要向量运算函数。
例1:xx<-c(2,6,10,8,4)
sum(xx)#和
max(xx)#最大值
min(xx)#最小值
range(xx)#取值范围
mean(xx)#平均值
var(xx)#方差
sort(xx)#从小到大排序
rev(xx)#反排列,所以从大到小排序应该是rev(sort(xx))
rank(xx)#单元值大小顺序
物理实验课prod(xx)#乘积,所以阶乘是prod(1:n)
例2:x<-q(1,15,2)
append(x,20:30,after=5)#插入数据
append(x,20:30)#参数after缺省默认从向量的最后插入值
replace(x,c(2,4,6),-1)#替换函数
例3:state.name
match(c('Ohio','Wyoming'),state.name)#完全匹配函数
pmatch(c('Oh','Wy'),state.name)#部分匹配函数
state.name[pmatch(c('Oh','Wy'),state.name)]
例4:yy<--9:10
all(yy>0)#判断所有
all(yy>-10)
any(yy==0)#判断部分
any(yy>0)
any(yy<-10)
矩阵(matrix)
矩阵生成函数matrix():matrix(data,nrow=,ncol=,byrow=F),其中,数据data 是必须的,其他都是选择参数,可以不选。byrow=F默认为按列来排列数据,如果想要按行排列,令byrow=T。
1、对角矩阵和单位阵。明朝朱棣
例1:x<-1:6;diag(x)#对角矩阵
例2:y<-rep(1,5);diag(y)#单位阵
2、矩阵下标
例1:xx<-matrix(1:20,4,5)
xx[2,2];xx[2,3:5];xx[3:4,3:4]
xx[2,];xx[,2]
3、代数意义下的矩阵乘法"%*%"
例1:yy<-matrix(1:6,3,2);zz<-matrix(1:6,2,3) yy%*%zz;zz%*%yy
4、矩阵行和列的维数
例1:xx<-matrix(1:20,4,5)
dim(xx)#行和列的维数
nrow(xx);ncol(xx)#行数和列数
5、矩阵的主要运算函数
例1:x<-1:6;y<-as.matrix(x)#转换成矩阵
年后找工作
is.matrix(x);is.matrix(y)#判断是否矩阵
例2:diag()#方阵对角线元素或者生成对角矩阵apply()#对矩阵应用函数
eigen()#求特征值和特征向量
solve()#求逆矩阵
chol()#Choleski分解
svd()#奇异值分解
qr()#QR分解
det()#求行列式
dim()#给出行列数
t()#矩阵转置脸上突然长痣
6、矩阵合并
例1:aa<-matrix(1:6,3,2);bb<-matrix(7:12,3,2)
cbind(aa,bb)#按列合并
rbind(aa,bb)#按行合并
7、矩阵apply()运算函数:语法是apply(data,dim,function),dim取1表示对行运用函数,取2表示对列运用函数。
例1:xx<-matrix(1:20,4,5)
colMeans(xx)#列均值
colSums(xx)#列和
其余大部分都要用到apply()函数
例2:xx<-matrix(1:20,4,5)
apply(xx,2,mean)#列均值,等同于colMeans(xx)
国民女神apply(xx,2,sum)#列和,等同于colMeans(xx),所以矩阵行和列的运算推荐用apply()。
apply(xx,1,var)#行方差
apply(xx,2,max)#每列最大值
apply(xx,2,rev)#每列的数反排列
数组(array)
一维数据是向量,二维数据是矩阵,数组是向量和矩阵的直接推广,是由三维或三维以上的数据构成的.
数组函数是array(),语法是:array(dadta,dim),其中data必须是同一类型的数据,dim是各维的长度组成的向量。
1、产生一个三维和四维数组。
例1:xx<-array(1:24,c(3,4,2))#一个三维数组
例2:yy<-array(1:36,c(2,3,3,2))#一个四维数组
2、dim()函数可将向量转化成数组或矩阵。
例1:xx<-1:24;dim(xx)<-c(3,4,2);xx#效果同array(1:24,c(3,4,2))
例2:zz<-1:10;dim(zz)<-c(2,5);zz#效果同matrix(1:10,2,5)
列表(list)
向量、矩阵和数组的元素必须是同一类型的数据。一个数据对象需要包含不同的数据类型,它可以采用列表这种形式。
创建列表可用list()函数,语法是:list(name1=component1,name2= component2,...)。
1、创建一个列表
例1:xx<-rep(1:2,3:4)
yy<-c('Mr A','Mr B','Mr C','Mr D','Mr E','Mr D','Mr F')
zz<-'discussion group'
name.list<-list(group=xx,name=yy,decription=zz)#创建了一个名为"name.list"的列表
name.list$n[name.list$g==2]
length(name.list)
邯郸成语典故mode(name.list)
names(name.list)
因子(factor)和有序因子(ordered factor)
因子用来存储类别变量(categorical variables)和有序变量,这类变量不能用来计算而只能用来分类或者计数。
因子表示分类变量,有序因子表示有序变量。
生成因子数据对象的函数是factor(),语法是factor(data,levels,labels,...),其中data 是数据,levels是因子水平向量,labels是因子的
标签向量。
1、创建一个因子。