如何反转向量中每两个连续元素的顺序?

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

假设我有以下向量

x = c(1,2,3,4,5,6)

我希望颠倒每两个连续元素的顺序,如下

2 1 4 3 6 5
r vector reverse
4个回答
3
投票

这是一个想法,

c(rbind(x[c(FALSE, TRUE)], x[c(TRUE, FALSE)]))
# [1] 2 1 4 3 6 5

3
投票

你也可以这样做

as.vector(matrix(x, nrow = 2)[2:1, ])

[1] 2 1 4 3 6 5

2
投票

另一种可能性:

x[seq_along(x) + c(1, -1)]
# [1] 2 1 4 3 6 5

1
投票

您可以使用

ave
+
rev
按组反转向量:

ave(x, (seq_along(x) + 1) %/% 2, FUN = rev)
#[1] 2 1 4 3 6 5
© www.soinside.com 2019 - 2024. All rights reserved.