R|ifelse、which、%in%的用法

轉(zhuǎn)載自藍(lán)迪的博客:R中ifelse、which、%in%的用法

在R學(xué)習(xí)過程中,遇到了ifelse、which、%in%,下面分別舉例,說明他們的用法。

1、ifelse

ifelse(test, yes, no)
test為真,輸出yes值,否則輸出no值。
舉例如下:

> x <- c(1,1,1,0,0,1,1)
> ifelse(x != 1, 1, 0) #若果x的值不等于1,輸出1,否則輸出0
[1] 0 0 0 1 1 0 0

2、which

用法 which(test)。
返回test為真值的位置(指針)。
舉例如下:

> which(x!=1) #返回x中不等于1的變量值得位置
[1] 4 5

> which(c(T,F,T)) #返回c(T,F,T)中為TURE值的位置。
[1] 1 3

> which(c(1,0,1)) #只對T, F做判斷。
Error in which(c(1, 0, 1)) : argument to 'which' is not logical

3、%in%

用法 a %in% table
a值是否包含于table中,為真輸出TURE,否者輸出FALSE
例如:

> x %in% 1
[1]  TRUE  TRUE  TRUE FALSE FALSE  TRUE  TRUE

> x %in% c(1, 0)
[1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE

> x %in% c(1, 2)
[1]  TRUE  TRUE  TRUE FALSE FALSE  TRUE  TRUE

聯(lián)合使用

> ifelse(x %in% 1, 1, 0) #若x的值包含在1里面,輸出1,否者輸出0
[1] 1 1 1 0 0 1 1

> ifelse(x %in% 1, 'yes', 'no') #若x的值包含在1里面,輸出yes,否者輸出no
[1] "yes" "yes" "yes" "no"  "no"  "yes" "yes"

> which(x %in% 1) 輸出x包含在1中值的位置
[1] 1 2 3 6 7

> y <- c(2, 1, 3, 4)
> z <- c(1, 4)
> ifelse(y %in% z, which(y==z), 0 ) ##若y的值包含在z里面,輸出y==z的位置,否者輸出0
[1] 0 2 0 4

> ifelse(y %in% z, which(y==z), 0 ) 
# 若y的值包含在z里面,輸出y==z的位置,否者輸出0
# 此例中沒有找到y(tǒng)==z的值, 輸出為NA。
[1] NA  0  0 NA

> ifelse(y %in% z, 1, 0 )
[1] 1 0 0 1
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,969評論 19 139
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數(shù)據(jù)革命閱讀 12,237評論 2 33
  • 我就是在這個心里難受身邊有一群問我怎么了怎么了的朋友但是我一句話也說不出只是想哭的晚上,想到了這個軟件,想到了...
    9aadf0bbd497閱讀 208評論 0 0
  • 文/溫臺 多少次 我的夢里 有一個你 多少次 你的溫柔 繾綣不已 可我看不清你 你的動作 你的口氣 你的神情 我都...
    溫臺閱讀 178評論 6 3
  • 漂亮拖鞋閱讀 432評論 2 8