如何将R中字符串向量对应的data.frame转为命名列表?
解决R中通过字符串向量创建命名data.frame列表的问题
推荐方案:使用mget()函数
这是最简洁高效的方法,mget()会直接根据字符串向量从当前环境中提取对应的对象,并且自动将列表元素命名为对应的字符串:
df <- c('a','b','c','d','e') ld <- mget(df)
你可以通过以下代码验证结果:
# 查看列表的结构和元素名称 str(ld) # 检查第一个列表元素的内容 head(ld$a)
你的原有代码问题分析
你之前的代码逻辑有误:strsplit(aa, ",")[[1]]返回的是字符向量,而eval(parse(text = ...))只能解析单个表达式字符串,因此最终只会提取第一个对象,且无法正确生成命名列表。
备选方案:lapply() + get()
如果需要手动遍历处理,可以用lapply循环每个字符串名称,通过get()获取对应对象,再手动设置列表名称:
ld <- lapply(df, get) names(ld) <- df
内容的提问来源于stack exchange,提问作者flora micy
相关产品推荐
相关产品推荐

