R語言語句組循環(huán)條件控制精_第1頁
R語言語句組循環(huán)條件控制精_第2頁
R語言語句組循環(huán)條件控制精_第3頁
R語言語句組循環(huán)條件控制精_第4頁
R語言語句組循環(huán)條件控制精_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

邏輯運算符:&& #邏輯與|| #邏輯或優(yōu)先對向量的第一個元素進行運算& #邏輯與| #邏輯或! #邏輯非按照逐個元素的方式進行計算== #恒等> #大于>=#大于等于< #小于,llJ、十AZrT.例子:分析outer函數的計算過程兩個數組的外積>X<-matrix(1:4,nrow=2)>Y<-array(1:6,dim=c(3,2))>X<-matrix(1:4,nrow=2)>Y<-array(1:6,dim=c(3,2))>outer(Y,X)#Y%o%X,,1,1XIdIdY>口儂>2⑶12月31rL10810H241-0810H241-21-0162024][4812可以改變計算函數FUN:+,八>outer(Y,X,FUN="+"),,1,1]7892][456J]]]J3J123]7892][456J]]]J3J123[[[■■1J-r.55?7123■■■i■.1-2]8910z][567JIT-123>X[刀⑶[1J13[2,]24>Y[1J14[2,]25[3,]36Iouter(X,Y,FUN=“*”):提取兩個矩陣的屬性if(is.array(X)){dX<-din(X)nx<-dlnmarrieB(X)no.nx<-is.null(nx)else{dX<-length(X)no.nx<-is.null(nair.es(X))if(!no.nx)nx<-list(narr.es(漢})if(is.array(Y)){dY<-din(Y)ny<-diirziairies(Y)no.ny<-is.null(ny)else{dY<-length(Y|no.ny<-is.null(nair.es(Y))if(!no.ny)ny<-list(nair;es(Y))outer(X,Y,FUN=^):兩個矩陣的外積計算過程工£(is.character(FUN)&&FUN=…){robj<-as.vector(X)I*%t(as.vector(Y))din(robj)<-c(dXfdY)else{FUN<-ir.atch.fun(FUN>Y<-rep(Yfxep.in^(length(X)rlength(Y)>)if(length(X))X<-rep(X,times=ceiling(length/length(X)))robj<-FDN(X,Y,...)din(robj)<-c(dX,dY)if(no.nx)nx<-vector[T'l±st,nrlength(dX))elseif(no.ny)ny<-vector("list",length(dY))if(\(no.nx&&no.ny))dimmaiTies(robj)<-c(nxFny) I練習4.1?自行設計一個條件控制例子,條件中包含邏輯運算符號&&,||和!?for循環(huán)?>for(nameinstatement){expr}#其中name為循環(huán);statement一般為一向量;expr一般為組合表達式例子>for(ninc(2,5,10,20,50))例子+{+ x<-rnorm(n)+ cat(n,":",sum(xA2)「\rT)+}2:0.41241395:5.20287510:13.9651320:20.07696一■cai^onQ例子:定義一個長度為100、mean=1,sd=1的正態(tài)分布隨機向量,并找出該向量的最小值及其出現的位置norm<-rnorm(100,1,1)#隨機向量min.norm<-100#設定初始最小值for(iin1:100)(、if(norm[i]<=min.norm)#第1個值與現有最小值做比較,| 如果比最大值大則更新最大值,min.norm=norm[i]并記錄位置,否則不做處理min.count=i)}))練習4.2?找出以上向量的最大值及其出現的位置。,?找處100次產生的隨機向量的最小值于出現母置的關系。(用plot(min.count,min.norm)表示,其中min.count為位置向量,min.norm為最小值向量)norm<-rnorm(100,1,1)max.norm<-0for(iin1:100)(if(norm[i]>=max,norm)(max.norm=norm[i]max.count=i)))for(jin1:100)min.count[j]<-0norm<-rnorm(10051,1)min.norm[j]<-100for(iin1:100)if(norm[i]<=min.norm[j])min.norm[j]=norm[i]Dlot(min.count.min.norm)其他循環(huán)形式repeat循環(huán)repeat(expr#組合表達式while循環(huán)while(condition)exprbreak#while循環(huán)while(condition)expr#while循環(huán)中首先執(zhí)行condition語句,當cond讓ion語句的執(zhí)行結果為TRUE時,執(zhí)行expr,否則結束循環(huán)例子:將容量為256M的內存的價格普調增長10%>count<-1>repeat+{+if(Memlnfo$Mem[count]==,,256,')+Memlnfo$Price[count]<-Memlnfo$Price[count]*1.1+count=count+1+if(count>length(Memlnfo$Price))+break+}>MeminfoVenderProduceNameTypeMemFrequencyPrice1Venderl256MBDDR400DDR256400346.52Vender2256MBDDR333DDR256333330.03Venders512MBDDR400DDR512400650.04Vender4256MBDDR400DDR256400308.05Venders256MBDDR333DDR256333291.56Vender6256MBSDRAM266SDRAM256266291.57Vender7256MBDDR400DDR256400319.0Q\/onrlorQORAT/IRADD/innnn口/innQ7QR四、分支控制語句switch(statementjist)#switch語句根據判定條件的不同而執(zhí)行不同的分支語句。首先執(zhí)行statement,其返回值范圍為1到list的長度。Sw讓ch語句執(zhí)行l(wèi)ist中包含的語句,并將結果返回。例子:將頻率為266,333,400的內存的價格分別增力口10%,15%/2%for(countin1:length(Memlnfo$Price))if(Memlnfo$Frequency[count]=="266'^)case<-1elseif(Memlnfo$Frequency[count]==,,333,')case<-2elsecase<-3switch(case,Memlnfo$Price[count]<-Memlnfo$Price[count]*1.1Memlnfo$Price[count]<-Memlnfo$Price[count]*1.15Memlnfo$Price[count]<-Memlnfo$Price[count]*1.12sw讓ch語句中的statement部分可以直接返回字符型矢量,并根據返回結果做相應處理。count<-1repeatswitch(as.character(Memlnfo$Frequency[count]),"266"=Memlnfo$Price[count]<-Memlnfo$Price[count]*1.1,“333”=Memlnfo$Pric域countjv-Memlnfo$Pric域countj*1.15,"400M=Memlnfo$Price[count]<-Memlnfo$Price[count]*1.12,count=count+1if(count>length(Memlnfo$Price))break利用三種循環(huán)方式實現以下操作如果要對用戶進行分類,如規(guī)定每日頁面瀏覽量PV為1~5的是初級用戶,6~15的為中級用戶,PV在16頁以上的為高級用戶,該如何操作?練習4.3?從小寫字母表的前5個中隨機抽取一個字母,并按抽取字母的不同做以下操作:a:用apply函數按列來求出datasets包中數據命名

為ability.co

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論