首页 > 解决方案 > 条件长度警告

问题描述

我的代码有问题。它可以工作,但会返回一条警告消息:条件的长度 > 1,并且只会使用第一个元素。(R 工作室)

你能帮助我吗?非常感谢您

rate<- c(0.10,0.20,0.30,0.40, 0.50)
level <- c(0,10000,20000, 50000, 75000)
add <- c(0,3450, 6960, 17220, 25420)
income <-c(100, 15000, 25000, 55000, 80000)


tax <- function(x) {
  
  control <- function(i) {
    
    if(i < 5){
      
      if (x > level[i] && x <= level[i + 1]) 
        res <- rate[i] * (x - level[i]) + add[i]
      
    } else{
      
        if (x > level[i]) 
          res <- rate[i] * (x - level[i]) + add[i]
      }
    
    
  }
  
  unlist(sapply(1:5, function(i) control (i)))
  
  
}
       
sapply(1:5, FUN= function (i) paste("TAX: ", tax(income)[i]))

标签: r

解决方案


推荐阅读