gpt4 book ai didi

r - 矢量的圆位移距离 n

转载 作者:行者123 更新时间:2023-12-04 10:56:11 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Circular shift of vector (equivalent to numpy.roll)

(6 个回答)


6年前关闭。




说我有

a <- c(1, 2, 3)

我希望 b 通过向“左”方向移动距离 1 来从 a 导出
b
# [1] 2 3 1

通过推导,我的意思是你:
  • 将“a”传递给一个吐出“b”的函数
  • 你使用某种索引短已经做到这一点。
  • b <- c(2, 3, 1)例如,这不是我正在寻找的解决方案

  • 什么是优雅/有效的方法来做到这一点?

    最佳答案

    您可以使用 headtail创建一个这样的函数:

    shifter <- function(x, n = 1) {
    if (n == 0) x else c(tail(x, -n), head(x, n))
    }

    用法:
    a <- 1:4

    shifter(a)
    # [1] 2 3 4 1

    shifter(a, 2)
    # [1] 3 4 1 2

    (或者,您可以从 here 获得 library(SOfun); shifter(a)SOfun )。

    关于r - 矢量的圆位移距离 n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30542128/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com