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
今天的邏輯運算就差不多到這邊吧:)
明天要學的是自定義函數