我想在我的数据框中添加一列,其中包含基于另一列中的数字的分类数据。我在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, ]但这当然行不通。有没有人知道我该怎么做才对?
发布于 2014-01-11 01:01:09
为什么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文档,你就会明白了。
https://stackoverflow.com/questions/21050021
复制相似问题