假设我有这样的示例数据,它们是连续的d <- rnorm(100)
现在,我想将此变量存储在一组与特定间隔相对应的级别中。例如,> -1表示第1级,-1 我知道我们可以创建一个新的变量来存储级别,但是有什么方法可以在不创建仅级别的附加变量的情况下保存数据,即根据条件分解变量? 我想要这样的东西d
# [1] -0.129731527 0.832232654 -1.204235933 ...
str(d)
# Factor w/ n levels "1", "2" ...
答案 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
但是我建议那样做,因为它们无论如何都是下面的数字。