0
我有一个数据框,其值范围从0到50.000。我想为这些数据创建5个类别,以便将它绘制在分类直方图中。如何绘制R data.frame列与原始值的分类直方图
我想要做的是创建一个列,告诉我哪个是该值所属的类别,以便绘制它。例如,我决定创建以下类别: [1,3](3,6](6,12)(12,30)(30,50000)
这是可能的吗?有一种更简单的方法?这样做,我一般提前使用GGPLOT2库地块
感谢
我有一个数据框,其值范围从0到50.000。我想为这些数据创建5个类别,以便将它绘制在分类直方图中。如何绘制R data.frame列与原始值的分类直方图
我想要做的是创建一个列,告诉我哪个是该值所属的类别,以便绘制它。例如,我决定创建以下类别: [1,3](3,6](6,12)(12,30)(30,50000)
这是可能的吗?有一种更简单的方法?这样做,我一般提前使用GGPLOT2库地块
感谢
见?cut
下面是一个例子:。
set.seed(42)
dat <- data.frame(Values = sample.int(50000, size = 100))
## create factor indicating which categoriesy data are in
grps <- with(dat, cut(Values, breaks = c(1,3,6,12,30,50000)))
这给:
> head(grps)
[1] (30,5e+04] (30,5e+04] (30,5e+04] (30,5e+04] (30,5e+04] (30,5e+04]
Levels: (1,3] (3,6] (6,12] (12,30] (30,5e+04]
> table(grps)
grps
(1,3] (3,6] (6,12] (12,30] (30,5e+04]
0 0 1 0 99
如果你想在数据帧,试试这个来代替:
dat2 <- within(dat, Groups <- cut(Values, breaks = c(1,3,6,12,30,50000)))
导致
> head(dat2)
Values Groups
1 45741 (30,5e+04]
2 46853 (30,5e+04]
3 14307 (30,5e+04]
4 41520 (30,5e+04]
5 32085 (30,5e+04]
6 25953 (30,5e+04]
,如果你想给不同的标签,你可以改变所产生的因子的水平给他们。
太棒了!正是我需要的 – biojl 2012-04-27 14:16:23
使用'cut'来做到这一点。 – Andrie 2012-04-27 13:36:35
[R添加包含另一列的bin值的列的可能的副本](http://stackoverflow.com/questions/5570293/r-adding-column-which-contains-bin-value-of-another-column) – Andrie 2012-04-27 13:37:56
@biojl下面是这个问题的一些以前的答案:[在基于范围的R中创建分类变量](http://stackoverflow.com/questions/2647639/create-categorical-variable-in-r-based-on-range ) – 2012-04-27 13:43:35