我需要将矢量值排序为自定义间隔,然后确定哪个元素属于哪个区间.
例如,如果向量是:
x <- c(1,4,12,13,18,24)
Run Code Online (Sandbox Code Playgroud)
间隔是:
interval.vector <- c(1,7,13,19,25)
1st interval: 1 - 7
2nd interval: 7 - 13
3rd interval: 13 - 19
4th interval: 19 - 25
Run Code Online (Sandbox Code Playgroud)
...我如何结合x并interval.vector得到这个:
element: 1 4 12 13 18 24
interval: 1 1 2 2 3 4
Run Code Online (Sandbox Code Playgroud)
你也可以使用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
Run Code Online (Sandbox Code Playgroud)
另一种选择是非常有效的findInterval功能,但我不确定这种解决方案在不同变体上的稳健性x
findInterval(x, interval.vector + 1L, all.inside = TRUE)
## [1] 1 1 2 2 3 4
Run Code Online (Sandbox Code Playgroud)