2

我在数据框中有一个数字字段,例如月收入,范围从 15000 卢比到 60000 卢比不等。

我想要一个新字段,比如 income_group ,它将有一个对应于收入范围的数字,比如小于 15000 是 1,大于 15000 但小于 30000 是 2,依此类推。

一种方法是使用这样的嵌套 ifelse 语句

mydataframe$incomegp <- ifelse(monthincome_condition, assign_number, 
                               ifelse statement and so on)

但是由于我有大约 7 个与此范围有关的不同数字,所以我正在寻找一个更优雅的解决方案。分类的数字也不是连续的,例如 1、3、5、7、9、12、15。

我是 R 新手,有人可以建议一些不需要嵌套的替代方案吗?

一个例子会很好,会帮助我。

4

1 回答 1

5

以下代码用于cut将数据向量分成 4 个类别(5 个中断),一个带有 R 内置数据集的示例:

with(mtcars, cut(mpg, seq(min(mpg) * 0.99, 
                          max(mpg) * 1.01, 
                          length = 5)))

请注意,我添加了* 0.99and* 1.01因为如果您将它们设置为数据本身的最小值和最大值,则等于该最小值/最大值的数据将被标记为NA.

如果您事先知道您的休息时间,您可以简单地在向量 ( ) 中手动指定它们,c(break_value1, break_value2, etc)而不是使用seq.

于 2013-06-19T11:25:15.130 回答