【问题标题】:How to roll the order of a fixed length vector [duplicate]如何滚动固定长度向量的顺序[重复]
【发布时间】:2020-07-15 22:32:41
【问题描述】:

我有这个向量:

1:12

我想以这种方式滚动值的顺序:

#Iter 1
1 2  3  4  5  6  7  8  9 10 11 12

#Iter 2
12 1 2  3  4  5  6  7  8  9 10 11

#Iter 3
11 12 1 2  3  4  5  6  7  8  9 10

#Iter 3
10 11 12 1 2  3  4  5  6  7  8  9

#Iter 4
...

#Iter 12
1 2  3  4  5  6  7  8  9 10 11 12

我尝试了dplyr:leadseq(to = 1, by = -1, length.out = 12) 和一个循环,但我不知道如何在 R 中进行反向(反向)切片。

【问题讨论】:

标签: r dplyr


【解决方案1】:

你可以试试这个:

vec <- 1:12
#List
List <- list()
List[[1]] <- vec
#Loop
for(i in 2:length(vec))
{
  List[[i]] <- vec[c((length(vec)-2)+2,1:length(vec)-1)]
  vec <- List[[i]]
}

[[1]]
 [1]  1  2  3  4  5  6  7  8  9 10 11 12

[[2]]
 [1] 12  1  2  3  4  5  6  7  8  9 10 11

[[3]]
 [1] 11 12  1  2  3  4  5  6  7  8  9 10

[[4]]
 [1] 10 11 12  1  2  3  4  5  6  7  8  9

[[5]]
 [1]  9 10 11 12  1  2  3  4  5  6  7  8

[[6]]
 [1]  8  9 10 11 12  1  2  3  4  5  6  7

[[7]]
 [1]  7  8  9 10 11 12  1  2  3  4  5  6

[[8]]
 [1]  6  7  8  9 10 11 12  1  2  3  4  5

[[9]]
 [1]  5  6  7  8  9 10 11 12  1  2  3  4

[[10]]
 [1]  4  5  6  7  8  9 10 11 12  1  2  3

[[11]]
 [1]  3  4  5  6  7  8  9 10 11 12  1  2

[[12]]
 [1]  2  3  4  5  6  7  8  9 10 11 12  1

【讨论】:

    猜你喜欢
    • 2023-04-08
    • 2012-08-26
    • 2021-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多