R语言如何将for循环生成的变量合并为c(x1到x10)形式的向量
实现方法
你可以直接用R内置的mget()函数批量获取指定变量名的取值,再转成向量即可,代码如下:
# 批量生成变量的原代码 for (i in 1:10) { assign(paste0('x', i), i) } # 整合为向量的代码 vec <- unlist(mget(paste0("x", 1:10)))
运行后得到的vec和你写的c(x1,x2,...,x10)效果完全一致。
如果变量数量不多,也可以用循环调用get()的方式取值,写法更直观:
vec <- c() for (i in 1:10) { vec <- c(vec, get(paste0("x", i))) }
额外建议
其实更推荐你避免用assign()批量生成大量独立变量,直接生成向量或者列表会更便于后续处理,比如上面的需求你一开始就可以直接写vec <- 1:10,要取第n个值直接用vec[n]即可,代码更简洁,运行效率也更高。
内容的提问来源于stack exchange,提问作者Mark
相关产品推荐
相关产品推荐

