我在这里阅读了这个问题:
Group numeric values by the intervals

但是,我想输出一个数字(而不是一个因子),特别是下限和/或上限的数值(在单独的列中)

从本质上讲,这是正确的,只是给出了'df $ start'和'df $ end'作为因素:

df$start <- cut(df$x,
                breaks = c(0,25,75,125,175,225,299),
                labels = c(0,25,75,125,175,225),
                right = TRUE)

df$end <- cut(df$x,
              breaks = c(0,25,75,125,175,225,299),
              labels = c(25,75,125,175,225,299),
              right = TRUE)

使用'as.numeric()'返回因子的级别(即值1-6),而不是原始数字。

谢谢!

最佳答案

我在猜测您想要的是什么,因为如果您想要“原始数字”,则可以只使用df$x。我想你是在一些数字之后才能反射(reflect)这个群体吗?在那种猜测中,接下来呢?

## Generate some example data
x = runif(5, 0, 300)
## Specify the labels
labels = c(0,25,75,125,175,225)
## Use cut as before
y = cut(x,
    breaks = c(0,25,75,125,175,225,300),
    labels = labels,
    right = TRUE)

当我们将y转换为数字时,这将给出标签的索引。因此,
labels[as.numeric(y)]

或更简单
labels[y]

关于r - 在R中从 'cut()'输出数值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32356108/

10-12 19:19