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つのビンになります。start、、endおよびxは常に整数です

これを行う機能はありますか?明らかに、1つのビンが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

そして、観測数が奇数であるため、最後のビンの幅は異なります。

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 に答える