R语言如何调取paste函数生成的列表路径字符串对应存储值
R语言列表内部路径字符串取值方案
方法1:适配已生成的路径字符串
你已经生成的合法访问路径字符串,可以直接解析为表达式后求值,代码如下:
# 你原有生成路径的代码 s <- noquote(paste('saa_2$udg[["',Criterios_codigos[a],'"]]',sep ="" )) # 新增代码,解析并执行路径取值 target_value <- eval(parse(text = s))
运行后target_value就是该路径对应的实际取值,和手动复制路径到控制台执行的效果完全一致。
方法2:更推荐的动态索引写法(无需拼接路径)
不需要拼接字符串生成路径,直接用动态索引访问列表,性能和安全性更高,代码如下:
target_value <- saa_2$udg[[Criterios_codigos[a]]]
原理说明
get()仅支持调取全局环境中的顶层对象,无法解析对象内部的子集访问语法,因此对你生成的嵌套列表访问路径失效。- 非必要场景优先选择第二种动态索引方案,避免
eval(parse())带来的代码注入风险。
内容的提问来源于stack exchange,提问作者Carlos Valdes
相关产品推荐
相关产品推荐

