gpt4 book ai didi

r - 如何在不使用 ifelse 的情况下基于范围创建因子列?

转载 作者:行者123 更新时间:2023-12-02 05:00:24 25 4
gpt4 key购买 nike

我在数据框中有一个数字字段,例如月收入,范围从 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* 1.01因为如果您将它们设置为数据本身的最小值和最大值,则等于该最小值/最大值的数据将被标记为 NA .

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

关于r - 如何在不使用 ifelse 的情况下基于范围创建因子列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17188101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com