这是测试公众号能不能全文跳转
@ 1.写一个循环 2.穷举,将所有的可能都罗列上 3. 使用apply函数,进行批量处理 4. 用他提供的数据进行测试
前言有朋友给我写信,问我R语言的问题,与其回复代码,不如写篇博客,顺便试试CSDN的新模板。 一、问题解析判断是否满足某个条件,然后返回相应的值。「比如:」 二、解决方案1.写一个循环代码如下(示例): if(x >= 22 & x <= 30){ return("A") }
2.穷举,将所有的可能都罗列上代码如下(示例): 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函数,进行批量处理apply(dd,1,test_f)
4. 用他提供的数据进行测试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
「测试结果:」 > 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,会智能一点。这里不再介绍。
|