R語言中ifelse、which、%in%的用法詳解
ifelse、which、%in%是R語言裡極其重要的函數,以後會經常在別的程序中看到。
ifelse
ifelse是if條件判斷語句的簡寫,它的用法如下:
ifelse(test,yes,no)
參數 | 描述 |
---|---|
test | 一個可以判斷邏輯表達式 |
yes | 判斷為 true 後返回的對象 |
no | 判斷為 flase 後返回的對象 |
舉例:
x = 5 ifelse(x,1,0)
如果x不等於0,就返回1,等於0就返回0。
which
which 返回條件為真的句柄,給正確的邏輯對象返回一個它的索引。
which(test,arr.ind=FALSE)
test 必須是邏輯對象,邏輯數組。
舉例:
which(LETTERS == "R")
%in%
%in% 判斷 前面的對象是否在後面的容器中
element %in% list veator
1 %in% c(1:3)
補充:R語言:if-else條件判斷及any、all、na.omit使用方法
基本結構展示:
if (7<10) { print("Seven is less than ten") } else{ print("seven is more than ten") }
實例演示:
Titanic=read.csv("https://goo.gl/4Gqsnz") #從網絡讀取數據
1. any()
#any代表隻要有任一值符合,即為TRUE if (any(titanicC$Age>70)) { print("there are passengers older than 70") } else{ print("no one is older than 70") }
2. all()
#所有都滿足才true if (all(titanicC$Age>10)) { print("all passengers older than 10") } else{ print("there are passengers younger than 10") }
3. na.omit()
#放的位置決定是刪除單一變量缺失值,還是刪除任何變量缺失值 if (any(na.omit(titanic$Age==100))) { print("there are passengers aged 100") } else{ print("there are no passengers aged 100") } #數據庫中隻要有missing的記錄都刪掉 if (any(titanic$Age==80, na.rm=TRUE)) { print("there are passengers aged 80") } else{ print("there are no passengers aged 80") } #Age這個變量有missing的記錄刪掉,其他變量有missing可以保留
4. else if 寫更重復的語句
x=100 y=10 if(x<y){ print("AA") } else if(x==y){ print(BB) } else{ print(CC) }
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- None Found