R - 如何在向量中的特定元素周围创建 ascending/descending 数字线

R - How to create an ascending/descending number line around a specific element in a vector

我有以下一系列向量,每个向量都有一个唯一的位置“0”,周围是 NA:

NA NA NA NA NA 0 NA NA NA NA NA NA NA NA NA NA NA

有没有办法为每个向量生成以下内容,即以 0 位置为中心的数字线,用于每个向量的长度?:

-5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11

非常感谢您的指导。

您可以使用:

x <- c(NA, NA, NA, NA, NA, 0 ,NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA)
seq_along(x) - which(x == 0)
#[1] -5 -4 -3 -2 -1  0  1  2  3  4  5  6  7  8  9 10 11

另一个解决方案

seq(- which(x == 0) + 1, length.out = length(x))

另一种选择

seq(length(x)) - which(!x)

which.max

seq_along(x) - which.max(x)