为什么在for循环中添加return()会产生影响?

时间:2018-04-26 20:49:00

标签: r for-loop dataframe

我正在玩R中的循环,并将我的数据设为x < -data.frame(rnorm(5)) 然后我正在做这样的for循环:

for (i in 1:nrow(x)){
  x$new[i] <- x$rnorm.5.[i] + 1
  return(x)
}

返回

              rnorm.5.   new
            0.4036397   1.40364
            1.1424362   1.40364
            0.2314323   1.40364
            0.7248371   1.40364
            0.6802016   1.40364

new列中的所有值都相同。

但是,如果我删除了return(x),或将其更改为print(x),那么它会给我一个不同的df:

              rnorm.5.   new
            0.4036397   1.40364
            1.1424362   1.1424362
            0.2314323   1.2314323
            0.7248371   1.7248371
            0.6802016   1.6802016

任何想法都会受到赞赏!

1 个答案:

答案 0 :(得分:4)

当您编写return(x)时,它会结束该函数,即使它在循环内部,因此循环在此停止并且不再循环。

当您编写print(x)时,它会打印但功能和循环继续

@Amar提供的附加信息:

return将传递函数/循环中的任何值以供使用,而print只是打印到控制台。例如,如果您希望分配函数的输出以供以后使用,则可以使用return