2014-11-04 4 views
2

Предположим, что у меня есть вектор:Симметричный биннинга около 0

vec.test <- c(-1.2, -1, -0.9, -0.5, 0, 0.5, 0.9 , 1, 1.2) 

Я хотел бы бин его в следующих бункеров: (-2, -1], (-1, 1), [1, 2)

Есть ли более элегантный/автоматический способ сделать это, чем следующее?

cut(vec.test, c(-2, -1+.Machine$double.eps, 1-.Machine$double.eps, 2), right=TRUE) 
+0

Что вы считаете «более изящным»? – Roland

ответ

1

Если вы не заботитесь о ярлыках, вы могли бы сделать что-то вроде этого:

vec.test <- seq(-2, 2, by=0.5) 
names(vec.test) <- cut(abs(vec.test), c(-1, 1, 2), right=FALSE, labels=FALSE) * 
        (-1)^(vec.test <= -1) 
#<NA> -2 -2 1 1 1 2 2 <NA> 
#-2.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5 2.0 
+0

Очень круто, спасибо! – mattek