R - 带切割的逆序

Flo*_*ndt 2 reverse cut r

我想根据给定的截止(或中断)将矢量分成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)))
Run Code Online (Sandbox Code Playgroud)

这将导致以下结果:

   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
Run Code Online (Sandbox Code Playgroud)

但是,我想要的是最低值在最高的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
Run Code Online (Sandbox Code Playgroud)

我尝试了很多与'rev()'的组合来反转序列.但请记住,我不能只是反转早期cut-command的结果,因为它们是不对称的.

我意识到可能有一个简单的解决方案,但由于某种原因,它一直在逃避我.我应该看哪个方向的建议?

Raj*_*han 5

通过否定数据帧并设置right = TRUE的值来更改cut()函数的参数,以便间隔变为(-inf,0].

实现了期望的结果.

data.frame(data = numbers, bins = as.integer(cut(-numbers, breaks = -cutoffs, right = TRUE)))
Run Code Online (Sandbox Code Playgroud)