2015-07-21 83 views
2

我需要我的矢量值進行排序到自定義的時間間隔,並隨後確定哪些元素屬於屬於哪個區間載體。如何獲得其識別與間隔元素中的R

例如,如果一個向量是:

x <- c(1,4,12,13,18,24) 

和間隔:

interval.vector <- c(1,7,13,19,25) 

1st interval: 1 - 7 
2nd interval: 7 - 13 
3rd interval: 13 - 19 
4th interval: 19 - 25 

...我如何結合xinterval.vector得到這個:

element: 1 4 12 13 18 24 
interval: 1 1 2 2 3 4 

回答

6

您也可以使用cut

x <- c(1,4,12,13,18,24) 
interval.vector <- c(1,7,13,19,25) 
x.cut <- cut(x, breaks = interval.vector, include.lowest = TRUE) 

data.frame(x, x.cut, group = as.numeric(x.cut)) 

    x x.cut group 
1 1 [1,7]  1 
2 4 [1,7]  1 
3 12 (7,13]  2 
4 13 (7,13]  2 
5 18 (13,19]  3 
6 24 (19,25]  4 

另一種選擇是非常有效的findInterval功能,但我不知道如何強大的這種解決方案的x

findInterval(x, interval.vector + 1L, all.inside = TRUE) 
## [1] 1 1 2 2 3 4 
+0

包taRifx之間有着功能(在不同的變體),其也可能適合您的需求。它將「根據它們之間的數字將值分組。」 – lawyeR