我的数据框中有一个数字字段,例如月收入,范围从 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 新手,有人可以建议一些不需要嵌套的替代方案吗?
一个例子就很好了,会对我有帮助。
下面这段代码使用cut
将数据向量分为 4 个类别(5 个中断),使用 R 内置数据集的示例:
with(mtcars, cut(mpg, seq(min(mpg) * 0.99,
max(mpg) * 1.01,
length = 5)))
请注意,我添加了* 0.99
and * 1.01
因为如果将它们设置为数据本身的最小值和最大值,则等于该最小值/最大值的数据将被标记为NA
.
如果您提前知道休息时间,则可以简单地在向量中手动指定它们(c(break_value1, break_value2, etc)
)而不是使用即时生成它们seq
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)