Day 11- 更多邏輯指令
(前言:那個,由於本人不是專業的程式設計師,寫的內容可能不是很正確,還請大家多多包含/指教 :D)
雖然前面已經提到很多R的邏輯運算了,還是有一些邏輯運算的符號、函數還沒有被提到,今天就當複習+學習新的邏輯運算吧
複習:前面已經提到的邏輯概念有:TRUE
, FALSE
, NA
, =
(等於), ==
(確切等於), !=
(不等於), =>
(大於等於), <=
(小於等於), is.na
(是否為NA), !is.na(is not NA)
今天要學習的邏輯符號有:&
, &&
, |
, ||
, isTRUE
, isFALSE
, xor
, which
, any
, all
&
在R裡面代表的是AND,如果&兩邊的陳述皆為TRUE的話,輸出結果為TRUE,若不相同則為FALSE。&&
就有點不一樣了,在&&
前後只有一個邏輯值的算式中,&&
功用和&
差不多,但是如果&&
的前後有一個邏輯向量的話,&&
會自動採用向量的第一個邏輯值當作整個邏輯向量的結果。
|
(垂直條)代表的是or,其運作的原理跟and 很像,只是把邏輯中的and換成or而已,||
也是一樣,只採用向量中的第一個值當作整串向量的結果進行運算。
另外,邏輯符號的運算可以和數字的四則運算混在一起,例如: 5 + 8 > 5 || 6 != 3 && 5 > 5.3
,輸出結果為TRUE。
當我們要檢驗一個條件時,可以用isTRUE
或 isFALSE
檢驗。
另外,xor
函數是用來檢驗兩個引數之間的邏輯關係,如果兩個引數結果皆為TRUE
或FALSE
,xor
的輸出結果為FALSE,若引數一個為TRUE
一個為FALSE
,xor
的輸出結果為TRUE。
最後,其他用來檢驗引數敘述的正確性的函數還有:which
, any
, all
。例:有一個向量kirbvillage <- c(4,5,2,34,4,1,3,4,8,2,0,3,8)
which
是用來篩選一個向量(或變數)中符合引數條件的函數。例:which(kirbvilage > 5)
輸出結果為:4,9,13any
是用來檢查一個向量(或變數)中符合引數條件的函數,若有一個(或多於一個)檢查結果為TRUE,則結果也會是TRUE。例:any(kirbvillage > 4)
結果為TRUE,因為向量中有一個(以上)的數大於4all
一樣也是用來篩選一個向量(或變數)中符合引數條件的函數,但是與any
不同,使用all
函數時,只有引數條件與檢查對象的條件吻合時,才會出現TRUE。例:all(kirbvillage < 2)
結果為FALSE,因為不是每個向量中的數都小於2
今天的邏輯運算就差不多到這邊吧:)
明天要學的是自定義函數