R中如何批量合并名称匹配固定规则的字符对象而无需逐个输入
R语言批量合并pruned_开头字符对象的方法
问题原因
你之前写的combine = c(list = ls(pattern = "^pruned_"))仅返回了匹配规则的对象名称字符串,没有调取对象对应的实际存储值,因此无法得到合并后的字符向量。
实现方法
方法1:基础R实现(无需加载额外包)
# 1. 获取所有以pruned_开头的对象名 pruned_obj_names <- ls(pattern = "^pruned_") # 2. 批量提取对象值并合并 combine <- do.call(c, mget(pruned_obj_names))
mget()可以批量传入对象名称字符串,返回对应对象值组成的列表;do.call(c, 列表)会将列表中所有元素拼接为一个字符向量,效果和你手动逐个输入对象名拼接完全一致。
方法2:tidyverse风格实现(适合习惯purrr语法的用户)
library(purrr) combine <- ls(pattern = "^pruned_") |> map(get) |> # 逐个提取对象对应的值 flatten_chr() # 合并为字符向量
附加提示
如果合并后需要去除重复值,直接在最终结果外嵌套unique()即可:combine_unique <- unique(combine)
你提到的对象值格式参考如下:
内容的提问来源于stack exchange,提问作者Lloyd_LiuSiyi
相关产品推荐
相关产品推荐

