0

R を使用して、各項目がその直前と直後の連続した項目からどれだけ離れているかに基づいて、データシートのインデックス列 (i) を生成したいと考えています。

  1. x が前の値から 10 より大きいが、次の値から 10 より小さい場合、「開始」を割り当てます。
  2. x が前の値から 10 を超え、次の値から 10 を超える場合、"lone" を割り当てます。
  3. x が前の値から 10 未満であるが、次の値から 10 より大きい場合、「終了」を割り当てます。
  4. x が前の値から 10 未満で、次の値から 10 未満の場合、「中間」を割り当てます。

たとえば、「x」という名前の列の読み取り - 1,3,14,25,26,27,31,46....

生成される索引付け列は次のようになります: i = start,end,lone,start,middle,middle,end,start...

>または<10の「距離引数」をそれ自体よりも高い値または低い値にのみ向ける良い方法を知っている人はいますか?

4

1 に答える 1

1

diffと一緒に(連続する要素間の距離を取得する)をhead使用できますtail

before = head(diff(x), -1)
after = tail(diff(x), -1)
result = ifelse(before < 10, ifelse(after < 10, "start", "end"), ifelse(after < 10, "middle", "lone"))
于 2013-01-11T18:01:03.370 に答える