R语言如何批量复制列表中的每个向量指定次数
R语言列表元素批量重复实现方案
错误原因说明
你写的for循环无法正常运行是因为R语言的for循环本身没有返回值,直接将for循环赋值给new_list不会得到预期的迭代结果,必须在循环内部手动维护结果变量的更新。
最优实现方案
R内置的rep()函数原生支持直接对列表做批量重复操作,只需要指定each参数就能实现「每个列表元素单独重复N次」的需求,不需要额外写循环:
# 每个列表元素重复5次,直接生成目标列表 new_list <- rep(my_list, each = 5)
参数说明:
each=5:列表的每一个元素各自重复5次,符合你的需求- 如果误用
times=5会得到「整个列表完整重复5次」的结果,和需求不符
其他可选实现方式
修正版for循环写法
如果需要用for循环实现,可以按如下方式改写:
# 先初始化空结果列表 new_list <- list() # 遍历原列表的每个元素 for (i in seq_along(my_list)) { # 将当前元素重复5次后追加到结果列表 new_list <- c(new_list, rep(my_list[i], times = 5)) }
lapply实现写法
也可以用apply族函数处理:
new_list <- unlist(lapply(my_list, rep, times = 5), recursive = FALSE)
内容的提问来源于stack exchange,提问作者mcfly
相关产品推荐
相关产品推荐

