2013-01-11 72 views
0

我想根據每個項目在多大程度上是由連續項之前它用R生成一個數據表一個索引列(i)和後:是一個值< or >上一個或下一個數字?

  1. 如果x> 10從以前的值,但< 10從下一個值,將其指定的「開始」
  2. 如果x> 10從以前的值,並從下一個值> 10,把它「孤獨」
  3. 如果x是< 10從以前的值,但從下一個值大於10時,將其指定爲「結束」
  4. 如果x是< 10 from prev從下一個值白條值,並且< 10,把它「中間」

例如,如果列名爲「×」讀 - 1,3,14,25,26,27,31,46 ....

生成列會讀取索引: I =開始,結束,孤獨,開始,中間,中間,結尾,開始...

有誰知道指揮的好方法「距離參數「>或< 10,只有比自己更高或更低的值?

+2

我真的不明白你在問什麼。即使在你的例子中,你的輸入中有8個項目,輸出中有6個項目,並沒有提示你如何從一個到另一個。 –

+0

我試過編輯你的問題,因爲我想我現在明白了(也請參閱下面的答案) –

回答

1

您可以使用diff(其獲得連續元素之間的距離),以headtail沿:

before = head(diff(x), -1) 
after = tail(diff(x), -1) 
result = ifelse(before < 10, ifelse(after < 10, "start", "end"), ifelse(after < 10, "middle", "lone")) 
相關問題