假设我有start=1
,end=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个箱子。 start
,end
和x
始终为整数
有没有这样做的功能?显然,start%%x!=0
当一个箱子可能比其他箱子更大或更小但我不介意。
任何帮助?
答案 0 :(得分: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
对于奇数个观测值,我们得到最后一个的不同的宽度:
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