【发布时间】:2017-02-19 10:43:58
【问题描述】:
我使用以下代码使用 R 计算税金。其中两个变量可以作为参数给出。当使用数据集时,我想根据类别计算税款。我是包开发的新手。请帮我解决这个问题。
插入数据集时出现错误,仅计算第一个类别 并获取此 Waring 消息。
警告信息: 在 if (category == 1) { : 条件的长度 > 1,并且只使用第一个元素
IIT<- function(income,category) {
if (category == 1){
if (income > 0 && income <= 18200) {
tax <- 0
} else if (income > 18200 && income <= 37000) {
tax <- (income - 18200) * .10
} else if (income > 37000 && income <= 80000) {
tax <- 3572 + (income - 37000) * .20
} else if (income > 80000 && income <= 180000) {
tax <- 17547 + (income - 80000) * .30
} else if (income > 180000 && Inf) {
tax <- 54547 + (income - 180000) * .40
}
return(tax)}
else if (category==2){
if (income > 0 && income <= 18200) {
tax <- 0
} else if (income > 18200 && income <= 37000) {
tax <- (income - 18200) * .15
} else if (income > 37000 && income <= 80000) {
tax <- 3572 + (income - 37000) * .25
} else if (income > 80000 && income <= 180000) {
tax <- 17547 + (income - 80000) * .35
} else if (income > 180000 && Inf) {
tax <- 54547 + (income - 180000) * .45
}
return(tax)
}
}
【问题讨论】:
-
你向函数“传递”了什么?单个值或数组/数据框?
-
if (income && category == 1)应该做什么,你的意思是if (category == 1)? -
让我们说 datset 有收入和类别,收入:25000,25000,30000,30000 类别:1,2,1,2 如程序 1 所述,有不同的税收和 2一套税收规则。
-
我要数据帧。
-
也适用于数据集。谢谢
标签: r if-statement r-package