这是测试公众号能不能全文跳转
@
- 1.写一个循环
- 2.穷举,将所有的可能都罗列上
- 3. 使用apply函数,进行批量处理
- 4. 用他提供的数据进行测试
前言
有朋友给我写信,问我R语言的问题,与其回复代码,不如写篇博客,顺便试试CSDN的新模板。
一、问题解析
判断是否满足某个条件,然后返回相应的值。「比如:」
- 21~30,返回A
- 32~40,返回B
- ……
二、解决方案
1.写一个循环
代码如下(示例):
代码语言:javascript复制if(x >= 22 & x <= 30){
return("A")
}
2.穷举,将所有的可能都罗列上
代码如下(示例):
代码语言:javascript复制test_f = function(x){
if(x >= 22 & x <= 30){
return("A")
}else if(x >=31 & x<=40){
return("B")
}else if(x >=41 & x <=50){
return("C")
}else if(x >=51 & x <=60){
return("D")
}else if(x >61 & x <=70){
return("E")
}
}
3. 使用apply函数,进行批量处理
代码语言:javascript复制apply(dd,1,test_f)
4. 用他提供的数据进行测试
代码语言:javascript复制dd = data.frame(age = c(22,23,24,35,36,37,45,46,47,56,57,65,67))
test_f = function(x){
if(x >= 22 & x <= 30){
return("A")
}else if(x >=31 & x<=40){
return("B")
}else if(x >=41 & x <=50){
return("C")
}else if(x >=51 & x <=60){
return("D")
}else if(x >61 & x <=70){
return("E")
}
}
apply(dd,1,test_f)
dd$status = apply(dd,1,test_f)
dd
「测试结果:」
代码语言:javascript复制> dd
age status
1 22 A
2 23 A
3 24 A
4 35 B
5 36 B
6 37 B
7 45 C
8 46 C
9 47 C
10 56 D
11 57 D
12 65 E
13 67 E
总结
这是R语言的循环判断,是一个if函数的应用。
「更好的方法」可以用letters函数,进行自动赋值,而不用罗列全部的ABCDEFG,会智能一点。这里不再介绍。
阅读原文,体验更佳!