根据R中的范围创建类别

时间:2014-01-10 16:55:39

标签: r

我想在我的数据框中添加一列,其中包含基于另一列中的数字的分类数据。我在Create categorical variable in R based on range找到了一个类似的问题,但是那里提供的解决方案没有提供我需要的解决方案。基本上,我需要这样的结果:

x   group
3   0-5
4   0-5
6   6-10
12  > 10

解决方案建议使用cut()shingle(),虽然这些解决方案可用于根据范围划分数据,但它们不会创建我需要的新分类列。

我也尝试过使用类似的东西(请不要笑)

data$group <- "0-5"==data[data$x>0 & data$x<5, ]

但那当然没有用。有谁知道我怎么能正确地做到这一点?

1 个答案:

答案 0 :(得分:8)

为什么cut无效?你没有分配到新专栏吗?

> data=data.frame(x=c(3,4,6,12))
> data$group = cut(data$x,c(0,5,10,15))
> data
   x   group
1  3   (0,5]
2  4   (0,5]
3  6  (5,10]
4 12 (10,15]

您创建的内容数据框的列中有一个factor对象。显示的文本是因子的levels,您可以通过分配更改它们:

levels(data$group) = c("0-5","6-10",">10")
data
   x group
1  3   0-5
2  4   0-5
3  6  6-10
4 12   >10

阅读一些关于因素的基本R文档,你就可以得到它。