【问题标题】:Use result of previous loop as input for next loop使用前一个循环的结果作为下一个循环的输入
【发布时间】:2017-03-08 02:18:16
【问题描述】:

我有下面的代码,这似乎完成了我正在尝试做的事情,但也抛出了代码下方显示的错误输出。我正在尝试做的是第一次使用 x = 1 运行循环,然后每次循环运行之后我想要 x = y,这是前一个循环的结果。我总是摸索循环,因此非常感谢任何提示。

Code:

for(i in 1:5)
{ 
 if(i=1)
 {
 x<-1
 }
 else
 {
 x<-y
 }
 y<-x*i
 y
 }


ERRORS:

 for(i in 1:5)
+ { 
+   if(i=1)
Error: unexpected '=' in:
  "{ 
    if(i="
   >   {
   +   x<-1
   +   }
    >   else
   Error: unexpected 'else' in "  else"
   >   {
   +   x<-y
  +   }
   >   y<-x*i
   >   y
   [1] 25
   > }
   Error: unexpected '}' in "}"

【问题讨论】:

  • 你可能想要 if(i==1)

标签: r for-loop


【解决方案1】:

这里是用稍微清晰的语法重写的代码

for (i in 1:5) {
    if (i == 1) {
        x <- 1
    } else {
        x <- y
    }
    y <- x * i
}

甚至更好的语法。

for (i in 1:5) {
    x <- ifelse(i == 1, 1, y)
    y <- x * i
}

【讨论】:

    猜你喜欢
    • 2018-08-18
    • 2016-10-18
    • 2016-02-11
    • 2018-07-27
    • 2021-08-22
    • 2020-01-26
    • 1970-01-01
    • 2021-12-04
    • 2012-11-15
    相关资源
    最近更新 更多