我有列表l
:
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
的元素,因此输出应为:
l_out2 <- c(5, 8, 11, 17)
由于
答案 0 :(得分:1)
我们可以尝试:
delta <- diff(l_in) > 1
c(l_in[which(delta)[1]], l_in[c(FALSE, delta)])
答案 1 :(得分:1)
你确定l_out
中应该有13个吗?无论如何试试这个。
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