R语言中ifelse/which/%in%的用法

在学习某个实例的时候,遇到了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为真值的位置(指针)。

举例如下:

 > x <- c(1,1,1,0,0,1,1) 

 > 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 <- c(1,1,1,0,0,1,1) 

> 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


联合使用 

> x <- c(1,1,1,0,0,1,1)

> 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的位置(在y中的位置),否者输出0 

[1] 0 2 0 4 




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值