R语言如何创建0到9各重复30次的指定顺序向量
R 生成指定顺序规则向量的方案
需求是生成总长度300的向量,按顺序排列:30个0、30个1……一直到30个9。
原代码的问题
你写的初始循环版本有三个核心错误:
- R 语言里
append()不会直接修改原向量,必须把函数返回值重新赋值给原变量,否则追加操作不会保存 - 循环范围写错了:你需要遍历的目标数值是0到9,不是0到30
- for 循环会自动按给定序列更新迭代变量,不需要在循环体内手动给
i做自增操作
修正后的循环写法
如果要保留逐次追加的循环逻辑,可以参考下面的代码:
labels <- c() for (current_num in 0:9) { labels <- append(labels, rep(current_num, 30)) }
推荐的R原生高效写法
R 本身内置的向量化函数不需要写显式循环,一行代码就能实现,运行效率远高于手动循环:
labels <- rep(0:9, each = 30)
写完可以用table(labels)做校验,返回结果会显示0-9每个值都恰好出现30次,顺序完全符合要求。
内容的提问来源于stack exchange,提问作者amatof
相关产品推荐
相关产品推荐

