如何将值舍入到R中的下限

如何将值舍入到R中的下限,r,R,我必须创建一个名为SalaryX的新列,该列的值计算如下: cut(employee$salary, 5, include.lowest = T, labels = c("20000", "30000", "40000", "50000", "60000")) 如果原始工资在20000到30000之间,则其薪水应为20000;如果原始工资在30000到40000之间,则其薪水应为30000,依此类推 我尝试使用cut功能,如下所示: cut(employee$salary, 5, includ

我必须创建一个名为SalaryX的新列,该列的值计算如下:

cut(employee$salary, 5, include.lowest = T, labels = c("20000", "30000", "40000", "50000", "60000"))
如果原始工资在20000到30000之间,则其
薪水应为20000;如果原始工资在30000到40000之间,则其
薪水应为30000,依此类推

我尝试使用
cut
功能,如下所示:

cut(employee$salary, 5, include.lowest = T, labels = c("20000", "30000", "40000", "50000", "60000"))
但是,如果工资值是25600,那么工资将被计算为30000


还有别的办法吗

您需要手动指定中断

cut(employee$salary,breaks = c(20000, 30000, 40000, 50000, 60000, 70000) , include.lowest = T, labels= c("20000", "30000", "40000", "50000", "60000"))
从文件中:

中断:两个或多个唯一切割点的数字向量,或给出x要切割到的间隔数的单个数字(大于或等于2)


这意味着,如果您仅指定一个数字,R将根据输入自动确定切割点,但如果您手动提供打断,则将获得所需的标高

您需要手动指定中断

cut(employee$salary,breaks = c(20000, 30000, 40000, 50000, 60000, 70000) , include.lowest = T, labels= c("20000", "30000", "40000", "50000", "60000"))
从文件中:

中断:两个或多个唯一切割点的数字向量,或给出x要切割到的间隔数的单个数字(大于或等于2)


这意味着,如果您仅指定一个数字,R将根据输入自动确定切割点,但如果您手动提供打断,则将获得所需的标高

这里有一个
dplyr
解决方案,使用
case\u when()
between()


下面是一个使用
case\u when()
between()的
dplyr
解决方案


假设所有的中断间隔为10000次,则需要一个更有效的解决方案

salary <- c(10000, 12000, 29000, 30000, 35000, 39000, 51000)

floor(salary/10000) * 10000
# [1] 10000 10000 20000 30000 30000 30000 50000

salary假设所有的中断间隔都是10000次,那么一个更有效的解决方案是

salary <- c(10000, 12000, 29000, 30000, 35000, 39000, 51000)

floor(salary/10000) * 10000
# [1] 10000 10000 20000 30000 30000 30000 50000

后代薪资说明,仅适用于等距类别备注后代薪资说明,仅适用于等距类别