【问题标题】:R programming loopR编程循环
【发布时间】:2020-11-08 18:20:14
【问题描述】:

我刚刚启动 R 程序。我有几个问题。 我想创建for循环。例如;我是这样创作的。但我想,循环创建每个 x 值,

result = result + 2*n+1 
for x = -1 result = 0
for x = 0 result = 0
for x = 1 result = 3
for x = 2 result = 6
# etc, until
x = 9 result = 27


result = 0
vector<-c(-1:9)
for (x in vector){
  print(x)
  x = x+1
  n = as.integer(1)
  if (x<=0){
    result= 1
  } else{
    result = result + 2*n+1
  }
}
print(result)

【问题讨论】:

  • result = result + 2*n+1 for x = -1 result = 0 for x = 0 result = 0 for x = 1 result = 3 for x = 2 result = 6....直到 x = 9 结果 = 27 这只是示例;我想这样做。
  • 如果x == 02*x+1 不是0。你为什么想要这样的结果?是不是问题中的错字?
  • 其实我想 if x0 result = 2*n+1
  • 所以x == 9result == 2*9 + 1 == 19
  • 没有。就像一个求和问题。 x ==9 结果 = 9*(2*n+1)==27

标签: r for-loop if-statement


【解决方案1】:

是这个吗? x &lt;= 0 的特殊情况强制代码预测 x 已经高于 0 的特殊情况,即x == 1

n <- 1
vector <- -1:9
for (x in vector){
  cat("x:", x, "\t")
  if (x <= 0){
    result <- 1
  } else{
    if(x == 1) result <- 0
    result <- result + 2*n + 1
  }
  cat("result:", result, "\n")
}
#x: -1  result: 1 
#x: 0   result: 1 
#x: 1   result: 3 
#x: 2   result: 6 
#x: 3   result: 9 
#x: 4   result: 12 
#x: 5   result: 15 
#x: 6   result: 18 
#x: 7   result: 21 
#x: 8   result: 24 
#x: 9   result: 27 

【讨论】:

  • 是的,确实如此。非常感谢。我现在知道了。但我有一个问题。你是如何增加 x 的。在哪条线上?
  • @syurtekin 在线for (x in vector){x 将采用 vector 的每个值,每个循环迭代一个。
  • 我明白了。我现在知道了。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-03
  • 2019-05-05
  • 2014-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多