1

可以说我有start=1end=12而且间隔start:end

我想将它拆分成箱,x=2这样我就会得到一个数据框

 start.index end.index
1           1         2
2           3         4
3           5         6
4           7         8
5           9        10
6          11        12

在这种情况下,它会产生 6 个 bin。start, end, 和x总是整数

有什么功能可以做到这一点吗?很明显,当start%%x!=0一个垃圾箱可能比其他垃圾箱更大或更小,但我不介意。

有什么帮助吗?

4

1 回答 1

3

以下是此类函数的一个简单示例:

foo <- function(start, end, x = 2) {
    SEQ <- seq(start, end, by = x)
    END <- SEQ + (x - 1)
    take <- END > end
    END[take] <- end
    data.frame(start.index = SEQ, end.index = END)
}

R> foo(1, 12, 2)
  start.index end.index
1           1         2
2           3         4
3           5         6
4           7         8
5           9        10
6          11        12
R> foo(1, 12, 3)
  start.index end.index
1           1         3
2           4         6
3           7         9
4          10        12
R> foo(1, 12, 4)
  start.index end.index
1           1         4
2           5         8
3           9        12

并且观察到奇数个,所以我们得到最后一个不同的 bin 宽度:

R> foo(1, 11)
  start.index end.index
1           1         2
2           3         4
3           5         6
4           7         8
5           9        10
6          11        11
于 2012-09-03T09:30:26.833 回答