【问题标题】:Creating an repeating but increasing sequence in R [duplicate]在R中创建一个重复但增加的序列[重复]
【发布时间】:2021-08-25 09:39:45
【问题描述】:

如果可能的话,我想只使用rep 和“seq”来创建序列1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8 5 6 7 8 9。所以每次重复我都希望重复序列增加一个。这可以通过我创建rep(seq(1,5),5) 然后添加一个向量rep(0:4, each = 5) 来实现。

但是有没有办法在不创建新向量并将其添加到第一个向量的情况下做到这一点?

【问题讨论】:

  • 您不需要创建新向量。做 - rep(seq(1,5),5) + rep(0:4, each = 5)
  • 是的,但我认为在精神上是一样的。我更想知道您是否可以使用repseq 并让它们进行更“高级”的图案化。
  • 你不需要seq,只要(1:5) + rep(0:4, e=5)就行了
  • 这是一种非常简洁的方法。不错
  • 我刚刚使用sequencestackoverflow.com/questions/54191825/… 发布了一个答案

标签: r vector vectorization


【解决方案1】:

你可以在一行中使用outer + seq

> c(outer(seq(5), seq(5) - 1, `+`))
 [1] 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8 5 6 7 8 9

或更短的代码embed

> c(embed(1:9, 5)[, 5:1])
 [1] 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8 5 6 7 8 9

【讨论】:

  • 嵌入解决方案非常非常简洁。很好的解决方案!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-08
  • 2021-09-05
  • 2021-05-30
  • 2020-09-15
相关资源
最近更新 更多