如何用For循环按5的倍数批量创建R语言数据列表?
解决批量创建数据列表的循环问题
直接给你修正后的可用代码:
for(i in 1:20){ # 计算每个列表对应的起始、结束序号 start_num <- 5 * i - 4 end_num <- 5 * i # 动态创建list1到list20变量并赋值 assign(paste0("list", i), mget(as.character(start_num:end_num))) }
原代码的错误点说明
- 运算优先级问题:
5*i-4:5*i在R里会先执行4:5得到c(4,5),再乘以i,最后用5*i减去这个结果,生成的序列完全不是你需要的连续区间。必须给起始、结束值加括号,明确区间范围:(5*i-4):(5*i)。 - 赋值方式错误:
list[i] <- ...是在修改一个名为list的对象(如果存在),而非创建list1、list2这类独立变量。需要用assign()函数动态生成变量名并赋值到全局环境。
内容的提问来源于stack exchange,提问作者catin
相关产品推荐
相关产品推荐

