我是靠谱客的博主 甜甜魔镜,最近开发中收集的这篇文章主要介绍R中ifelse、which、%in%的用法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在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 notlogical


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%的用法的全部内容,希望文章能够帮你解决R中ifelse、which、%in%的用法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部