不使用 rev() 反转向量

问题描述 投票:0回答:3

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

v[length(v):1]

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

r sequence
3个回答
0
投票

只需使用

switch
,只需计算一次长度即可。

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

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

0
投票

试试这个

> 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

0
投票

我会简单地使用

v[length(v):0]

© www.soinside.com 2019 - 2024. All rights reserved.