如何在R语言for循环中传递向量,使asdf保留所有循环值?
解决方法
你当前的代码问题在于每次循环都会用新的i值覆盖asdf,所以最终asdf只会保留最后一次循环的28。要让asdf同时包含4和28,有两种简单的方式:
方式1:用循环收集结果
先初始化一个空向量,在循环里把每次的i追加进去:
asdf <- c() for (i in c(4,28)){ asdf <- c(asdf, i) } # 查看结果 asdf
运行后输出:
[1] 4 28
方式2:直接赋值向量(更高效)
R是向量优先的语言,这种简单的赋值完全不需要循环,直接把目标向量赋值给asdf即可:
asdf <- c(4,28) asdf
输出结果和上面一致,而且代码更简洁高效。
如果之后遇到需要循环处理更复杂逻辑的场景,记得要先初始化一个容器(比如向量、列表)来存储每次循环的结果,避免覆盖之前的值。
内容的提问来源于stack exchange,提问作者rakfn
相关产品推荐
相关产品推荐

