滚动矢量,使最大值居中,并且值相对于它的顺序保持不变

  • 本文关键字:相对于 顺序 最大值 滚动 r
  • 更新时间 :
  • 英文 :


如何滚动向量,使最大值位于中间,并且相对于它的值的顺序保持不变?

如果矢量的长度是偶数,那么就把它放在平均值中:n/2

如果我有:vec <- c(0, 2, 4, 3, 1, 8)

我想返回:3 1 8 0 2 4

谢谢。

您可以使用具有shifter:函数的SOfun

library(SOfun)
shifter(vec, which.max(vec) - length(vec) / 2)

输出

[1] 3 1 8 0 2 4

在第二种情况下,您有:

vec <- c(0, 8, 4, 3, 1, 2)

中间之前有max值,导致负偏移:

shifter(vec, which.max(vec) - length(vec) / 2)

输出

[1] 2 0 8 4 3 1

相关内容

最新更新