首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >If then命令在r中生成字符串作为输出

If then命令在r中生成字符串作为输出
EN

Stack Overflow用户
提问于 2019-12-20 12:25:08
回答 1查看 24关注 0票数 1

我正在尝试计算每个家庭的税后收入,数据框架如下:

代码语言:javascript
复制
     id  hhinc  
1     1  53880  
2     2  49501  
3     3  37525  
4     4  28791   
5     5  91049    
6     6 133000   
7     7  12299        
8     8  23000   
9     9  58100   
10   10   9764    

其中hhinc是家庭收入。

然后,我创建了以下函数来计算每个家庭缴纳的税款:

代码语言:javascript
复制
taxpaid = function(hhinc) { 
  if (hhinc > 0 & hhinc <= 19999) {tax = 0} 
  else if (hhinc > 20000 & hhinc <= 49999) {tax = (hhinc - 20000)*.15} 
  else if (hhinc > 50000 & hhinc <= 199999) {tax = 4499.85 + ((hhinc - 50000)*.25)} 
  else if (hhinc > 200000 & hhinc <= 999999) {tax <- 37499.75 + ((hhinc - 200000)*.39)} 
  else if (hhinc > 1000000) {tax <- 311999.61 + ((hhinc - 1000000)*.85)}
  return(tax)
}

由于此函数仅适用于标量输入,因此我将该函数向量化:

代码语言:javascript
复制
taxpaid_vec = Vectorize(taxpaid, vectorize.args = "hhinc")

但是,当我使用这个函数来计算已支付的税款时,我得到的是非数字输出。因此,我不能从每个家庭的收入中减去所支付的税款,以确定税后收入。我想知道如何修复我的代码,以便获得纳税的数字输出。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-20 12:51:34

if/else替换为ifelse,以使您的函数向量化。

代码语言:javascript
复制
taxpaid = function(hhinc) { 
   ifelse(hhinc > 0 & hhinc <= 19999, 0,
    ifelse(hhinc > 20000 & hhinc <= 49999, (hhinc - 20000)*.15, 
     ifelse(hhinc > 50000 & hhinc <= 199999, 4499.85 + ((hhinc - 50000)*.25),
      ifelse(hhinc > 200000 & hhinc <= 999999, 37499.75 + ((hhinc - 200000)*.39), 
       ifelse(hhinc > 1000000, 311999.61 + ((hhinc - 1000000)*.85), NA)))))
}

应用函数

代码语言:javascript
复制
df$tax_income <- taxpaid(df$hhinc)
df

#   id  hhinc tax_income
#1   1  53880    5469.85
#2   2  49501    4425.15
#3   3  37525    2628.75
#4   4  28791    1318.65
#5   5  91049   14762.10
#6   6 133000   25249.85
#7   7  12299       0.00
#8   8  23000     450.00
#9   9  58100    6524.85
#10 10   9764       0.00

您还可以查看?dplyr::case_when来处理此类嵌套条件。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59419786

复制
相关文章

相似问题

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