## R Study Note 2

2013-03-06
 ########基本概念#############彻底清除#####rm(list=ls())#####读取文件#####wd=getwd()；wd  #获取当前路径#      setwd(dir="E:/Study/R")；wd   #设置当前路径#rt<-read.table("E:/Study/R/Ch02/exam0203.txt",head=TRUE);rt  #读取文件#####简单运算#####x<-c(-1,0,2);y<-c(3,8,2)v<-2*x+y+1;vx*yx/yx^2y^xexp(x)sqrt(y);sqrt(-2+0i)   #开方m<-round(x/3,1);n<-y/5m;nm%/%n       #整数除法m%%n        #求余数x<-c(10,6,4,7,8)min(x);which.min(x)   #第几个分量是最小值max(x);which.max(x)sum(x);prod(x)        #求和；求积var<-sum((x-mean(x))^2)/(length(x)-1);var   var(x)       #求向量方差#####规律序列#####seq(-5,5,by=.5)seq(length=21,-5,by=.5)seq(-5,5, length.out=21)  #等间隔函数x<-c(1,4,6,25)s<-rep(x,times=3);s     #重复函数#####逻辑向量#####all(c(1,6,4)>3)any(c(1,6,4)>3)#####缺失数据#####z<-c(1:3,NA)ind<-is.na(z);ind    #检验是否有缺失数据z[is.na(z)]<-0;z    #将缺失数据改为0z<-c(0/1,0/0,1/0,NA);zis.nan(z)    #是否确定is.finite(z)    #是够无穷is.na(z)    #是否缺失#####字符向量#####paste("Fuck","You!")labs<-paste("X",1:5,seq="");labspaste(1:10)paste("Time is",date())paste(c("a","b"),collapse=".")#####复数向量#####x<-seq(-pi,pi,by=pi/10)y<-sin(x)z<-complex(re=x,im=y)    #生成复数向量，x为实部，y为虚部plot(z)lines(z)#####向量下标#####x<-c(1,3,5);c(x+1)[3]x[2]<-13;xx[c(1,3)]<-c(12,14);xx[x<13]z<-c(-1,1:3,NA)y<-z[!is.na(z)];y    #将非缺失值赋予另一向量x<-(z+1)[(!is.na(z)&z>0)];x    #做相应运算y<-numeric(length(x))y[x<0]<-1-x[x<0]y[x>0]<-1+x[x>0]    #定义函数c("a","b","c")[rep(c(2,1,3),times=3)]    #下标正整数运算ages<-c(Li=34,Liu=22,Ji=15);ages["Ji"]    #访问元素friut<-c(12,14,15,13)names(friut)<-c("Ji","Ya","Jb","Yooo")friut                      #在向量元素后加名字 命名#####模式属性#####mode(c(1,2,3)>5)    #类型length(2:10)     #长度m<-as.character(c(2:9));m     #转化类型n<-as.numeric(m);n     #转化类型x<-numeric();x[5]<-12;x     #修改长度x<-c(Girl=800,Woman=400);xattributes(x)     #返回对象属性attr(x,"names")     #存取对象属性attr(x,"names")<-c("Luoli","Shufu");xattr(x,"sex")<-"Female";attributes(x)     #修改对象属性#####变量属性#####sex<-c("M","F","F","?","M");sexsexf<-factor(sex);sexf     #factor（）把向量转换成因子sex.levels<-levels(sexf);sex.levelssex.tab<-table(sex);sex.tab     #统计频数height<-c(154,154,165,173,143)tapply(height,sex,mean)     #tapply()gl(3,5)gl(3,1,15)     #gl(水平数，重复次数，结果长度)#####多维数组和矩阵#####z<-c(1:15);zdim(z)<-c(5,3);z     #向量定义成数组x<-array(1:15,c(5,3));x     #直接构造数组y<-matrix(c(1:15),nrow=5,ncol=3,byrow=TRUE);y     #直接构造数组 y<-matrix(c(1:15),nrow=5,ncol=3);y     #直接构造数组 a<-1:24dim(a)<-c(2,3,4)a[2,1,3]a[1,,]a[1,2:3,2:3]     #数组下表#####数组运算#####A<-matrix(1:6,nrow=2,byrow=T);AB<-matrix(1:6,nrow=2);BD1<-A/B;D1D2<-A+B;D2x1<-c(100,200);x1x2<-1:6;x2x3<-matrix(1:6,nrow=3);x3x1+x2x1+x3      #形状不一致数组运算#####矩阵运算#####A<-matrix(1:6,nrow=2);At(A)                     #转置det(array(1:4,c(2,2)))   #求行列式m<-1:5;n<-2*1:5;m%*%n    #向量内积m%o%n                    #向量外积outer(m,n)               #向量外积A*AA%*%t(A)                 #矩阵相乘diag(c(1,5,9))                #生成对角矩阵diag(matrix(1:9,nrow=3))      #取对角线元素A<-diag(c(5,2,1));Ab<-c(2,5,3);bsolve(A,b)         #解线性方程组solve(A)           #求矩阵逆ev<-eigen(A);ev    #求解特征值与特征向量x1<-rbind(c(1,2),c(3,4));x1   #矩阵合并x2<-10+x1;x2x3<-cbind(x1,x2);x3x4<-cbind(1,x1);x4A<-matrix(1:6,nrow=3);A       #矩阵拉直as.vector(A)X<-matrix(1:6,nrow=3,         #命名数组维dimnames=list(c("one","two","three"),c("1st","2nd")),byrow=F);X#####语句######if/else语句#x<-c(-1,-5,0,4)if(any(x<=0)) {y <- x y[which(x<=0)]<-y[which(x<=0)]+1} else y <- x   #??????x;yy<-if(any(x<=0))(x+1)else(x)x;y#switch语句#x<-3switch(x,2+2,mean(1:10),norm(4))        #???????#if语句#n<-4;x<-array(0,dim=c(n,n))           #构造Hilbert矩阵#for(i in 1:n){    for(j in 1:n){        x[i,j]<-1/(i+j-1)     }}xround(x,2)#while语句#f<-1;f[2]<-1;i<-1                     #构造100以内Fibonacci矩阵#while (f[i]+f[i+1]<100){       f[i+2]<-f[i]+f[i+1]       i<-i+1}f#repeat语句#f<-1;f[2]<-1;i<-1repeat{      f[i+2]<-f[i]+f[i+1]       i<-i+1      if (f[i]+f[i+1] >=100) break}f#####函数######二分法计算#fzero<-function(f,a,b,eps=1e-5){   if(f(a)*f(b)>0){     list(fail="finding root is fail")     }   else{      repeat{         if(abs(a-b)

0条评论

×

¥.00

• 电子书免费读
• 全站无广告
• 全屏阅读
• 高品质朗读
• 批量上传文档
• 购书5折
• 5千个文件夹
• 专属客服