You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

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

假设我们有如下向量:

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

希望将每两个连续元素的顺序反转,得到结果:

2 1 4 3 6 5

方法1:矩阵重塑法

把向量转换为2行的矩阵,反转行顺序后再扁平化:

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

运行结果:

[1] 2 1 4 3 6 5

方法2:索引重排法

生成反转后的索引序列,直接重新排列向量元素:

idx <- rep(seq(2, length(x), 2), each = 2) - 1:0
x[idx]

逻辑说明:seq(2, length(x), 2)定位每对元素的末尾位置,通过rep和减法生成每对元素的反转索引(如2→2、1;4→4、3),最终用索引提取元素实现反转。

方法3:循环遍历法(直观易懂)

通过循环逐个处理每对元素:

result <- numeric(length(x))
for (i in seq(1, length(x), 2)) {
  result[i] <- x[i+1]
  result[i+1] <- x[i]
}
result

运行后同样得到目标结果。

内容的提问来源于stack exchange,提问作者An116

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 10:32:33