首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自SQL的CASE-WHEN的r版本

来自SQL的CASE-WHEN的r版本
EN

Stack Overflow用户
提问于 2013-01-16 19:42:18
回答 1查看 7.1K关注 0票数 1

我正在寻找一种在R中实现类似情况的方法--在SQL中实现功能。有一个变量与收入范围有关,我需要创建两个新变量,其值是范围的最小值和最大值。下面的代码不是完全的R,也不是完全的SQL,而是中间的一些代码。希望我想要做的事情是清楚的。

if (INCOME_CD == "A") { income.min <- 1000 income.max <- 14999 }否则if (INCOME_CD == "B") { income.min <- 15000 income.max <- 24999 。 。 }否则{ income.min <- 99999 income.max <- 999999 }

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-16 19:49:20

您可以使用switch

在这里,最后一个值是默认值

代码语言:javascript
复制
switch (INCOME_CD , 
        A= list(income.min = 1000,income.max = 14999),
        B =list(income.min = 15000, income.max = 24999),
        list(income.min = 99999,income.max = 999999))

e.g

代码语言:javascript
复制
INCOME_CD <- 'A' 

上面的代码返回

代码语言:javascript
复制
$income.min
[1] 1000
$income.max
[1] 14999

编辑对OP的澄清

通常,我们在函数中使用此代码。

代码语言:javascript
复制
get.income <- function(INCOME_CD){
switch (INCOME_CD , 
        A= list(income.min = 1000,income.max = 14999),
        B =list(income.min = 15000, income.max = 24999),
        list(income.min = 99999,income.max = 999999))
}

> get.income('A')
$income.min
[1] 1000

$income.max
[1] 14999

> get.income('B')
$income.min
[1] 15000

$income.max
[1] 24999

> get.income('C')
$income.min
[1] 99999

$income.max
[1] 999999
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14366464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档