不使用rev()反转向量

lvjbypge  于 2023-02-01  发布在  其他
关注(0)|答案(2)|浏览(127)

我们必须在没有rev()的情况下反转它。不允许使用if/for循环。它也必须对numeric(0)有效。

v[length(v):1]

对于长度为0的向量,无法正确输出。

vngu2lb8

vngu2lb81#

只需使用switch,它只需要计算一次长度。

v <- numeric(0L)  ## creating vector of length zero

v[{len <- length(v); switch((len > 0L) + 1L, 0L, len:1)}]
# numeric(0)
disbfnqx

disbfnqx2#

试试这个

> v <- numeric(0)

> v[length(v) - seq_along(v) + 1]
numeric(0)

以及

> v <- c(5, 2, 7, 8, 3)

> v[length(v) - seq_along(v) + 1]
[1] 3 8 7 2 5

相关问题