ifelse、which、%in%是R语言里极其重要的函数,以后会经常在别的程序中看到。
ifelse
ifelse是if条件判断语句的简写,它的用法如下:
1
|
ifelse( test , yes ,no) |
参数 | 描述 |
---|---|
test | 一个可以判断逻辑表达式 |
yes | 判断为 true 后返回的对象 |
no | 判断为 flase 后返回的对象 |
举例:
1
2
|
x = 5 ifelse(x,1,0) |
如果x不等于0,就返回1,等于0就返回0。
which
which 返回条件为真的句柄,给正确的逻辑对象返回一个它的索引。
1
|
which ( test ,arr.ind=FALSE) |
test 必须是逻辑对象,逻辑数组。
举例:
1
|
which (LETTERS == "R" ) |
%in%
%in% 判断 前面的对象是否在后面的容器中
1
|
element % in % list veator |
1
|
1 % in % c(1:3) |
补充:R语言:if-else条件判断及any、all、na.omit使用方法
基本结构展示:
1
2
3
4
5
|
if (7<10) { print( "Seven is less than ten" ) } else { print( "seven is more than ten" ) } |
实例演示:
1
|
Titanic= read .csv( "https://goo.gl/4Gqsnz" ) #从网络读取数据 |
1. any()
1
2
3
4
5
6
|
#any代表只要有任一值符合,即为TRUE if (any(titanicC$Age>70)) { print( "there are passengers older than 70" ) } else { print( "no one is older than 70" ) } |
2. all()
1
2
3
4
5
6
|
#所有都满足才true if (all(titanicC$Age>10)) { print( "all passengers older than 10" ) } else { print( "there are passengers younger than 10" ) } |
3. na.omit()
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#放的位置决定是删除单一变量缺失值,还是删除任何变量缺失值 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 写更重复的语句
1
2
3
4
5
6
7
8
9
|
x=100 y=10 if (x<y){ print( "AA" ) } else if (x==y){ print(BB) } else { print(CC) } |
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。如有错误或未考虑完全的地方,望不吝赐教。
原文链接:https://www.jianshu.com/p/b21e4be9b216