我想在我的数据框中添加一列,其中包含基于另一列中的数字的分类数据。我在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, ]
但那当然没有用。有谁知道我怎么能正确地做到这一点?
答案 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文档,你就可以得到它。