【问题标题】:Sequentially Increment an Inner Loop Based on Outer Loop Value根据外循环值顺序递增内循环
【发布时间】:2021-09-09 17:44:42
【问题描述】:

如果这已在其他地方得到解答,我深表歉意,但我找不到解决方案(或问题的恰当措辞)。

在下面的示例中,q 最大为 20。

如果我希望 q 的值在 k=1 时为 1:20,k=2 时为 21:40,k=3 时为 41:60,我将如何调整以下代码?

for (k in 1:3) {
  for (q in 1:20) {
    print(paste("k =", k, "q= ",q))
   } 
}

【问题讨论】:

  • for (k in 1:3) for (q in 20*(k-1)+1:20) { ... }
  • 感谢@r2evans!
  • @r2evans 进一步使用后,您的解决方案是最好的。您愿意将其发布为答案吗?

标签: r loops


【解决方案1】:
for (k in 1:3) {
  for (q in 20*(k-1)+1:20) {
    # ...
  }
}

【讨论】:

  • 一个简约的答案。 完美就是你什么都不能带走。
  • 是的,有时最直接的问题不会从冗长的答案中受益。我一般喜欢“解释”事情,但我真的不知道该说什么......
【解决方案2】:

没有内置的快捷方式,您必须做一些数学运算。我建议这样做:

for(q in seq(from = (k - 1) * 20 + 1, length.out = 20))

注意括号!

【讨论】:

  • 谢谢格雷戈尔!我正在尝试这样的数学运算,但没有想到 seq 函数等。
猜你喜欢
  • 2019-01-17
  • 1970-01-01
  • 2014-03-15
  • 1970-01-01
  • 2016-12-31
  • 1970-01-01
  • 2020-04-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多