我正在玩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
任何想法都会受到赞赏!
答案 0 :(得分:4)
当您编写return(x)
时,它会结束该函数,即使它在循环内部,因此循环在此停止并且不再循环。
当您编写print(x)
时,它会打印但功能和循环继续
@Amar提供的附加信息:
return
将传递函数/循环中的任何值以供使用,而print
只是打印到控制台。例如,如果您希望分配函数的输出以供以后使用,则可以使用return