########基本概念######## #####徹底清除##### rm(list=ls()) #####讀取文件##### wd=getwd();wd #獲取當(dāng)前路徑# setwd(dir="E:/Study/R");wd #設(shè)置當(dāng)前路徑# rt<-read.table("E:/Study/R/Ch02/exam0203.txt",head=TRUE);rt #讀取文件 #####簡(jiǎn)單運(yùn)算##### x<-c(-1,0,2);y<-c(3,8,2) v<-2*x+y+1;v x*y x/y x^2 y^x exp(x) sqrt(y);sqrt(-2+0i) #開(kāi)方 m<-round(x/3,1);n<-y/5 m;n m%/%n #整數(shù)除法 m%%n #求余數(shù) x<-c(10,6,4,7,8) min(x);which.min(x) #第幾個(gè)分量是最小值 max(x);which.max(x) sum(x);prod(x) #求和;求積 var<-sum((x-mean(x))^2)/(length(x)-1);var var(x) #求向量方差 #####規(guī)律序列##### seq(-5,5,by=.5) seq(length=21,-5,by=.5) seq(-5,5, length.out=21) #等間隔函數(shù) x<-c(1,4,6,25) s<-rep(x,times=3);s #重復(fù)函數(shù) #####邏輯向量##### all(c(1,6,4)>3) any(c(1,6,4)>3) #####缺失數(shù)據(jù)##### z<-c(1:3,NA) ind<-is.na(z);ind #檢驗(yàn)是否有缺失數(shù)據(jù) z[is.na(z)]<-0;z #將缺失數(shù)據(jù)改為0 z<-c(0/1,0/0,1/0,NA);z is.nan(z) #是否確定 is.finite(z) #是夠無(wú)窮 is.na(z) #是否缺失 #####字符向量##### paste("Fuck","You!") labs<-paste("X",1:5,seq="");labs paste(1:10) paste("Time is",date()) paste(c("a","b"),collapse=".") #####復(fù)數(shù)向量##### x<-seq(-pi,pi,by=pi/10) y<-sin(x) z<-complex(re=x,im=y) #生成復(fù)數(shù)向量,x為實(shí)部,y為虛部 plot(z) lines(z) #####向量下標(biāo)##### x<-c(1,3,5);c(x+1)[3] x[2]<-13;x x[c(1,3)]<-c(12,14);x x[x<13] z<-c(-1,1:3,NA) y<-z[!is.na(z)];y #將非缺失值賦予另一向量 x<-(z+1)[(!is.na(z)&z>0)];x #做相應(yīng)運(yùn)算 y<-numeric(length(x)) y[x<0]<-1-x[x<0] y[x>0]<-1+x[x>0] #定義函數(shù) c("a","b","c")[rep(c(2,1,3),times=3)] #下標(biāo)正整數(shù)運(yùn)算 ages<-c(Li=34,Liu=22,Ji=15);ages["Ji"] #訪問(wèn)元素 friut<-c(12,14,15,13) names(friut)<-c("Ji","Ya","Jb","Yooo") friut #在向量元素后加名字 命名 #####模式屬性##### mode(c(1,2,3)>5) #類(lèi)型 length(2:10) #長(zhǎng)度 m<-as.character(c(2:9));m #轉(zhuǎn)化類(lèi)型 n<-as.numeric(m);n #轉(zhuǎn)化類(lèi)型 x<-numeric();x[5]<-12;x #修改長(zhǎng)度 x<-c(Girl=800,Woman=400);x attributes(x) #返回對(duì)象屬性 attr(x,"names") #存取對(duì)象屬性 attr(x,"names")<-c("Luoli","Shufu");x attr(x,"sex")<-"Female";attributes(x) #修改對(duì)象屬性 #####變量屬性##### sex<-c("M","F","F","?","M");sex sexf<-factor(sex);sexf #factor()把向量轉(zhuǎn)換成因子 sex.levels<-levels(sexf);sex.levels sex.tab<-table(sex);sex.tab #統(tǒng)計(jì)頻數(shù) height<-c(154,154,165,173,143) tapply(height,sex,mean) #tapply() gl(3,5) gl(3,1,15) #gl(水平數(shù),重復(fù)次數(shù),結(jié)果長(zhǎng)度) #####多維數(shù)組和矩陣##### z<-c(1:15);z dim(z)<-c(5,3);z #向量定義成數(shù)組 x<-array(1:15,c(5,3));x #直接構(gòu)造數(shù)組 y<-matrix(c(1:15),nrow=5,ncol=3,byrow=TRUE);y #直接構(gòu)造數(shù)組 y<-matrix(c(1:15),nrow=5,ncol=3);y #直接構(gòu)造數(shù)組 a<-1:24 dim(a)<-c(2,3,4) a[2,1,3] a[1,,] a[1,2:3,2:3] #數(shù)組下表 #####數(shù)組運(yùn)算##### A<-matrix(1:6,nrow=2,byrow=T);A B<-matrix(1:6,nrow=2);B D1<-A/B;D1 D2<-A+B;D2 x1<-c(100,200);x1 x2<-1:6;x2 x3<-matrix(1:6,nrow=3);x3 x1+x2 x1+x3 #形狀不一致數(shù)組運(yùn)算 #####矩陣運(yùn)算##### A<-matrix(1:6,nrow=2);A t(A) #轉(zhuǎn)置 det(array(1:4,c(2,2))) #求行列式 m<-1:5;n<-2*1:5;m%*%n #向量?jī)?nèi)積 m%o%n #向量外積 outer(m,n) #向量外積 A*A A%*%t(A) #矩陣相乘 diag(c(1,5,9)) #生成對(duì)角矩陣 diag(matrix(1:9,nrow=3)) #取對(duì)角線元素 A<-diag(c(5,2,1));A b<-c(2,5,3);b solve(A,b) #解線性方程組 solve(A) #求矩陣逆 ev<-eigen(A);ev #求解特征值與特征向量 x1<-rbind(c(1,2),c(3,4));x1 #矩陣合并 x2<-10+x1;x2 x3<-cbind(x1,x2);x3 x4<-cbind(1,x1);x4 A<-matrix(1:6,nrow=3);A #矩陣?yán)?/div> as.vector(A) X<-matrix(1:6,nrow=3, #命名數(shù)組維 dimnames=list(c("one","two","three"),c("1st","2nd")), byrow=F);X #####語(yǔ)句##### #if/else語(yǔ)句# 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;y y<-if(any(x<=0))(x+1)else(x) x;y #switch語(yǔ)句# x<-3 switch(x,2+2,mean(1:10),norm(4)) #??????? #if語(yǔ)句# n<-4;x<-array(0,dim=c(n,n)) #構(gòu)造Hilbert矩陣# for(i in 1:n){ for(j in 1:n){ x[i,j]<-1/(i+j-1) } } x round(x,2) #while語(yǔ)句# f<-1;f[2]<-1;i<-1 #構(gòu)造100以?xún)?nèi)Fibonacci矩陣# while (f[i]+f[i+1]<100){ f[i+2]<-f[i]+f[i+1] i<-i+1 } f #repeat語(yǔ)句# f<-1;f[2]<-1;i<-1 repeat{ f[i+2]<-f[i]+f[i+1] i<-i+1 if (f[i]+f[i+1] >=100) break } f #####函數(shù)##### #二分法計(jì)算# 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)<eps) break x<-(a+b)/2 if(f(a)*f(x)<0) b<-x else a<-x } list(root=(a+b)/2,fun=f(x)) } } f<-function(x) x^3-x-1 fzero(f,1,2,1e-6) uniroot(f,c(1,2)) #一元方程根 #計(jì)算兩樣本T統(tǒng)計(jì)量# A <- c(79.98, 80.04, 80.02, 80.04, 80.03, 80.03, 80.04, 79.97, 80.05, 80.03, 80.02, 80.00, 80.02) B <- c(80.02, 79.94, 79.98, 79.97, 79.97, 80.03, 79.95, 79.97) twosam<-function(y1,y2){ n1<-length(y1);n2<-length(y2) ym1<-mean(y1);ym2<-mean(y2) s1<-var(y1);s2<-var(y2) s<-((n1-1)*s1+(n2-1)*s2)/(n1+n2-2) (ym1-ym2)/sqrt(s*(1/n1+1/n2)) } twosam(A,B) #非線性方程組Newton法# |
|
來(lái)自: 爭(zhēng)子俱樂(lè)部 > 《R語(yǔ)言》