作者:手机用户2502907453 | 来源:互联网 | 2023-01-31 16:21
我想根据给定的截止(或中断)将矢量分成R中的区间.
这可以按照以下方式完成:
numbers <- 1:10
cutoffs <- c(0,2,6,7,10, Inf)
data.frame(data = numbers, bins = as.integer(cut(numbers, breaks = cutoffs, right = FALSE)))
这将导致以下结果:
data bins
1 1 1
2 2 2
3 3 2
4 4 2
5 5 2
6 6 3
7 7 4
8 8 4
9 9 4
10 10 5
但是,我想要的是最低值在最高的bin中,反之亦然.所以我想以某种方式实现以下目标:
data bins
1 1 5
2 2 4
3 3 4
4 4 4
5 5 4
6 6 3
7 7 2
8 8 2
9 9 2
10 10 1
我尝试了很多与'rev()'的组合来反转序列.但请记住,我不能只是反转早期cut-command的结果,因为它们是不对称的.
我意识到可能有一个简单的解决方案,但由于某种原因,它一直在逃避我.我应该看哪个方向的建议?
1> Raj Padmanab..:
通过否定数据帧并设置right = TRUE的值来更改cut()函数的参数,以便间隔变为(-inf,0].
实现了期望的结果.
data.frame(data = numbers, bins = as.integer(cut(-numbers, breaks = -cutoffs, right = TRUE)))