首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于R中的范围创建类别

基于R中的范围创建类别
EN

Stack Overflow用户
提问于 2014-01-11 00:55:39
回答 1查看 30.9K关注 0票数 5

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

代码语言:javascript
复制
x   group
3   0-5
4   0-5
6   6-10
12  > 10

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

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

代码语言:javascript
复制
data$group <- "0-5"==data[data$x>0 & data$x<5, ]

但这当然行不通。有没有人知道我该怎么做才对?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-11 01:01:09

为什么cut不起作用?你是不是没有分配一个新的栏目或者别的什么?

代码语言:javascript
复制
> 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,您可以通过赋值来更改它们:

代码语言:javascript
复制
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文档,你就会明白了。

票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21050021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档