通过对现有级别进行分组来创建新级别

时间:2019-06-24 11:00:34

标签: r

假设我有这样的示例数据,它们是连续的d <- rnorm(100)

现在,我想将此变量存储在一组与特定间隔相对应的级别中。例如,> -1表示第1级,-1

我知道我们可以创建一个新的变量来存储级别,但是有什么方法可以在不创建仅级别的附加变量的情况下保存数据,即根据条件分解变量?

我想要这样的东西

d  
# [1] -0.129731527  0.832232654 -1.204235933  ...
str(d)  
# Factor w/ n levels "1", "2" ...

1 个答案:

答案 0 :(得分:5)

您可以使用cut

#the second argument is where you specify the breaks that you want
dc <- cut(d, c(-Inf, -1, 0, 1, Inf))

输出将是上述范围的一个因数。然后,如果需要,您可以将其级别更改为数字:

levels(dc) <- 1:4

但是我建议那样做,因为它们无论如何都是下面的数字。