与cut()函数有些误解

时间:2016-09-25 23:53:02

标签: r

我将变量从离散变为连续变量。我现在如何获得每个间隔的中值。

sample <- c(30,16,12,40,14,30,5,5,5,5,38,30,45,22,30,31,22,35,45,29)
sample$Cut <- cut(sample,seq(min(sample),max(sample),(max(sample)-min(sample))/r),include.lowest = TRUE)

我的神奇r值是

 r = log(length(sample), base = 2)
    r = trunc(r)
    r = r + 1

现在我需要从每个间隔中获得中值:

[5,13](13,21](21,29](29,37)(37,45) 对于这个例子,我必须得到9,17,25,33,41。

抱歉这么傻的问题。提前谢谢。

1 个答案:

答案 0 :(得分:1)

你有断点:

b <- seq(min(sample), max(sample), (max(sample)-min(sample))/r)
# [1]  5 13 21 29 37 45

因此,这些间隔的中间点是:

(b[-length(b)] + b[-1]) / 2
# [1]  9 17 25 33 41