R語(yǔ)言邏輯型運(yùn)算的實(shí)現(xiàn)_第1頁(yè)
R語(yǔ)言邏輯型運(yùn)算的實(shí)現(xiàn)_第2頁(yè)
R語(yǔ)言邏輯型運(yùn)算的實(shí)現(xiàn)_第3頁(yè)
R語(yǔ)言邏輯型運(yùn)算的實(shí)現(xiàn)_第4頁(yè)
R語(yǔ)言邏輯型運(yùn)算的實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第R語(yǔ)言邏輯型運(yùn)算的實(shí)現(xiàn)目錄一、邏輯型向量與比較運(yùn)算二、邏輯運(yùn)算三、邏輯運(yùn)算函數(shù)

一、邏輯型向量與比較運(yùn)算

邏輯型是R的基本數(shù)據(jù)類型之一,只有兩個(gè)值TRUE和FALSE,缺失時(shí)為NA。

邏輯值一般產(chǎn)生自比較,如

sele-(log10(15)print(sele)

返回:

向量比較結(jié)果為邏輯型向量。如

c(1,3,5)2

返回:

(1:4)=(4:1)

返回:

與NA比較產(chǎn)生NA,如

c(1,NA,3)2

返回:

NA==NA

返回:

為了判斷向量每個(gè)元素是否NA,用is.na()函數(shù),如

is.na(c(1,NA,3)2)

返回:

用is.finite()判斷向量每個(gè)元素是否Inf值。

is.finite(c(1,Inf,8))

返回:

比較運(yùn)算符包括:====!=%in%

分別表示小于、小于等于、大于、大于等于、等于、不等于、屬于。要注意等于比較用了兩個(gè)等號(hào)。

%in%是比較特殊的比較,x%in%y的運(yùn)算把向量y看成集合,運(yùn)算結(jié)果是一個(gè)邏輯型向量,第i個(gè)元素的值為x的第i元素是否屬于y的邏輯型值。如

c(1,3)%in%c(2,3,4)

返回:

c(NA,3)%in%c(2,3,4)

##[1]FALSETRUE

c(1,3)%in%c(NA,3,4)

##[1]FALSETRUE

c(NA,3)%in%c(NA,3,4)

##[1]TRUETRUE

函數(shù)match(x,y)起到和x%in%y運(yùn)算類似的作用,但是其返回結(jié)果不是找到與否,而是對(duì)x的每個(gè)元素,找到其在y中首次出現(xiàn)的下標(biāo),找不到時(shí)取缺失值,如

match(c(1,3),c(2,3,4,3))

返回:

二、邏輯運(yùn)算

為了表達(dá)如x0而且x1,x0或者x1之類的復(fù)合比較,需要使用邏輯運(yùn)算把兩個(gè)比較連接起來(lái)。邏輯運(yùn)算符為,|和!,分別表示同時(shí)成立、兩者至少其一成立、條件的反面。比如,設(shè)age=3表示嬰兒,sex==女表示女性,

則age=3sex==女表示女嬰,

age=3|sex==女表示嬰兒或婦女,

!(age=3|sex==女)表示既非嬰兒也非婦女。

為了確定運(yùn)算的先后次序可以用圓括號(hào)()指定。

用xor(x,y)表示x與y的異或運(yùn)算,即值不相等時(shí)為真值,相等時(shí)為假值,有缺失值參加運(yùn)算時(shí)為缺失值。

邏輯向量與邏輯標(biāo)量之間的邏輯運(yùn)算,兩個(gè)邏輯向量之間的邏輯運(yùn)算規(guī)則遵從一般R向量間運(yùn)算規(guī)則。

在右運(yùn)算符是缺失值時(shí),如果左運(yùn)算符能夠確定結(jié)果真假,可以得到非缺失的結(jié)果。例如,TRUE|NA為TRUE,FALSENA為FALSE。

不能確定結(jié)果時(shí)返回NA,比如,TRUENA為NA,FALSE|NA為NA。

和||分別為短路的標(biāo)量邏輯與和短路的標(biāo)量邏輯或,僅對(duì)兩個(gè)標(biāo)量進(jìn)行運(yùn)算,如果有向量也僅使用第一個(gè)元素。一般用在if語(yǔ)句、while語(yǔ)句中,且只要第一個(gè)比較已經(jīng)決定最終結(jié)果就不計(jì)算第二個(gè)比較。例如

if(TRUE||sqrt(-1)0)next

由于其中的sqrt(-1)部分不會(huì)執(zhí)行,結(jié)果返回:

三、邏輯運(yùn)算函數(shù)

因?yàn)镽中比較與邏輯運(yùn)算都支持向量之間、向量與標(biāo)量之間的運(yùn)算,所以在需要一個(gè)標(biāo)量結(jié)果時(shí)要特別注意,后面講到的if結(jié)構(gòu)、while結(jié)構(gòu)都需要邏輯標(biāo)量而且不能是缺失值。這時(shí),應(yīng)該對(duì)缺失值結(jié)果單獨(dú)考慮。

若cond是邏輯向量,用all(cond)測(cè)試cond的所有元素為真;用any(cond)測(cè)試cond至少一個(gè)元素為真。cond中允許有缺失值,結(jié)果可能為缺失值。如

c(1,NA,3)2

all(c(1,NA,3)2)

any(c(1,NA,3)2)

all(NA)

any(NA)

返回:

函數(shù)which()返回真值對(duì)應(yīng)的所有下標(biāo),如

which(c(FALSE,TRUE,TRUE,FALSE,NA))

which((11:15)12)

返回:

函數(shù)identical(x,y)比較兩個(gè)R對(duì)象x與y的內(nèi)容是否完全相同,結(jié)果只會(huì)取標(biāo)量TRUE與FALSE兩種。如

identical(c(1,2,3),c(1,2,NA))

identical(c(1L,2L,3L),c(1,2,3))

因?yàn)榍耙幌蛄渴钦麛?shù)型,后一向量是實(shí)數(shù)型,結(jié)果返回:

函數(shù)all.equal()與identical()類似,但是在比較數(shù)值型時(shí)不區(qū)分整數(shù)型與實(shí)數(shù)型,而且相同時(shí)返回標(biāo)量TRUE,但是不同時(shí)會(huì)返回一個(gè)說(shuō)明有何不同的字符串。如

all.equal(c(1,2,3),c(1,2,NA))

all.equal(c(1L,2L,3L),c(1,2,3))

返回:

函數(shù)duplicated()返回每個(gè)元素是否為重復(fù)值的結(jié)果,如:

duplicated(c(1,2,1,3,NA,4,NA))

返回:

用函數(shù)unique()可

溫馨提示

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

評(píng)論

0/150

提交評(píng)論