2017-10-21 79 views
1

我有列表l從矢量選擇升[x]其中(L [X] - 1 [X-1])> 1

l_in <- c(1:5, 8, 11:13, 17) 

我想從該列表中選擇l_in[x]元件,其中(l_in[x] - l_in[x-1]) > 1

因此,輸出應爲:

l_out <- c(8, 11, 17) 

此外,我也想從l_in其是第一l_out元件之前包括元件,所以outpu T應當是:

l_out2 <- c(5, 8, 11, 17) 

感謝

回答

1

,我們可以嘗試:

delta <- diff(l_in) > 1 
c(l_in[which(delta)[1]], l_in[c(FALSE, delta)]) 
+0

你是對的,我已經修復了OP。 –

+0

好的,我會相應地調整我的答案。 –

1

你肯定應該有13 l_out?無論如何試試這個。

l_in <- c(1:5, 8, 11:13, 17) 
l_out <- c() 
for(i in 2:length(l_in)) { 
    if (l_in[i] - l_in[i-1] > 1) l_out <- c(l_out,l_in[i]) 
} 
l_out <- c(l_in[which(l_in == l_out[1]) - 1],l_out) 
l_out 
[1] 5 8 11 17 
+0

你是對的,我已經修復OP。 –