R中ifelse which in 的用法

2021-07-17 01:20:12 字數 1519 閱讀 7681

r中ifelse、which、%in%的用法 (2014-02-08 13:54:08)

標籤: 教育

在r學習過程中,遇到了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

聯合使用

> 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==z的值, 輸出為na。

[1] na 0 0 na

> ifelse(y %in% z, 1, 0 )

[1] 1 0 0 1

R中ifelse which in 的用法

1.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 test 返回test為真值的位置 指標 which ...

R中ifelse which in 的用法

r中ifelse which in 的用法 2014 02 08 13 54 08 標籤 教育 在r學習過程中,遇到了ifelse which in 下面分別舉例,說明他們的用法。1 ifelse ifelse test,yes,no test為真,輸出yes值,否則輸出no值。舉例如下 x c 1...

R中的函式

一 函式的定義格式為 name function arg 1,arg 2,expression 可以看做是 y f x 的寫法。expression是r的表示式,括號內是引數,放在函式最後的是返回值,返回值可以是向量,陣列,列表,資料框。r函式是一定要有返回值的。二 函式的語句 if switch ...