You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按名称模式合并多个R语言列表为单一长列表?

批量合并带统一命名模式的R向量

你可以通过以下两种方法实现批量合并:

方法1:使用do.call() + c()

mget(ls(pattern = "list"))会返回一个包含所有目标向量的列表,用do.call(c, ...)可以将列表中的所有向量逐个传入c()函数完成合并:

# 精确匹配以list开头、后跟数字的对象(避免误匹配其他含list的变量)
all.lists <- do.call(c, mget(ls(pattern = "^list\\d+$")))

方法2:使用unlist()

unlist()可以直接扁平化列表结构,将嵌套的向量合并为一个长向量;若不需要保留原向量的名称,可添加use.names = FALSE参数:

all.lists <- unlist(mget(ls(pattern = "^list\\d+$")), use.names = FALSE)

验证结果

执行后查看合并结果的结构:

str(all.lists)
# 输出: chr [1:14] "aaa" "bbb" "ccc" "ddd" "eee" "fff" "ggg" "hhh" "iii" "jjj" "kkk" "lll" "mmm" "nnn"

说明之前方法的问题

  • c(mget(...))仅将多个子列表合并为一个大列表,并未合并列表内的向量元素;
  • ls(pattern = "list")返回的是对象名称的字符串,而非对象本身,因此list.append得到的只是名称集合,不是实际的向量内容。

内容的提问来源于stack exchange,提问作者Nereus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 12:48:28