r - 为什么在 for 循环中添加 return() 会有所不同?
问题描述
我在 R 中玩 for 循环,并将我的数据设置为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
任何想法将不胜感激!
解决方案
当您编写return(x)
时,它会结束函数,即使它在循环内,所以循环会在此处停止并且不再循环。
当您编写print(x)
时,它会打印,但函数和循环会继续进行
@Amar 提供的其他信息:
return
将传递函数/循环中的任何值以供使用,同时print
简单地打印到控制台。例如,如果您希望分配函数的输出以供以后使用,您可以使用return
推荐阅读
- r - 根据不同的标签面板显示不同的图像作为闪亮仪表板的标题
- gradle - 如何使用 Gradle 和 Junit5 启用 Allure 历史?
- python - 不能用 OGR 读取某些层?
- graphql - 如何从 GraphQLSchema 添加/替换/删除类型?
- java - 解析服务器:删除与用户关联的旧个人资料图像
- sql - 雄辩的群发消息
- reactjs - gatsby-plugin-dark-mode 导致类型错误。打字稿盖茨比
- r - geom_dotplot 颜色的随机模式
- java - 无法从 LavaPlayer 的 Javax 实现中解析 NotificationListener
- php - 如何在 CSS 中查找和删除正文选择器