假设我有以下向量
x = c(1,2,3,4,5,6)
我希望颠倒每两个连续元素的顺序,如下
2 1 4 3 6 5
这是一个想法,
c(rbind(x[c(FALSE, TRUE)], x[c(TRUE, FALSE)]))
# [1] 2 1 4 3 6 5
你也可以这样做
as.vector(matrix(x, nrow = 2)[2:1, ])
[1] 2 1 4 3 6 5
另一种可能性:
x[seq_along(x) + c(1, -1)]
# [1] 2 1 4 3 6 5
您可以使用
ave
+ rev
按组反转向量:
ave(x, (seq_along(x) + 1) %/% 2, FUN = rev)
#[1] 2 1 4 3 6 5