gpt4 book ai didi

R序列自动化

转载 作者:行者123 更新时间:2023-12-02 05:59:36 24 4
gpt4 key购买 nike

c(2:5,
1:1,
3:5,
1:2,
4:5,
1:3,
5:5,
1:4)
> 2 3 4 5 1 3 4 5 1 2 4 5 1 2 3 5 1 2 3 4.

正如你所看到的,这里有一个模式。从 n=5 n-3:n 开始,递减计数,然后是 1:n-4 等等。我的问题是有什么方法可以使用 R 中的 seq()rep() 来自动执行此操作?

最佳答案

我想您可以将其视为某个变量 d 从 3 到 0 的循环,其中对于每个值 d 您添加以下两个向量:

(n-d):n
1:(n-d-1)

有了这个分析,我们可以很容易地单行执行:

n <- 5
as.vector(sapply(3:0, function(d) c((n-d):n, 1:(n-d-1))))
# [1] 2 3 4 5 1 3 4 5 1 2 4 5 1 2 3 5 1 2 3 4

另一种更有效但在我看来不太容易理解的方法可以使用 outer 和 modulo:

as.vector(outer(0:(n-1), 3:0, function(x, y) (x-y-1) %% n + 1))
# [1] 2 3 4 5 1 3 4 5 1 2 4 5 1 2 3 5 1 2 3 4

关于R序列自动化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31823652/

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