前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R 语言根据条件判断返回ABCD状态

R 语言根据条件判断返回ABCD状态

作者头像
邓飞
发布2020-09-14 16:52:53
9920
发布2020-09-14 16:52:53
举报

这是测试公众号能不能全文跳转

@

  • 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,会智能一点。这里不再介绍。

阅读原文,体验更佳!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-09-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 育种数据分析之放飞自我 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 这是测试公众号能不能全文跳转
  • 前言
  • 一、问题解析
  • 二、解决方案
    • 1.写一个循环
      • 2.穷举,将所有的可能都罗列上
        • 3. 使用apply函数,进行批量处理
          • 4. 用他提供的数据进行测试
          • 总结
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档