在get函数中使用引号(get())

时间:2014-07-24 15:34:41

标签: r

我希望得到一些关于在字符串中使用引号的帮助get()。

说,我想从列表中检索一个元素

some_list <- list(element1=11,element2=22,element3=33)

很自然地,我可以通过

简单地引用这个元素
some_list[['element1']]

但是,一旦我在get()中使用它作为字符串,R就会抛出此错误消息

get("some_list[['element1']]")

> Error in get("some_list[['element1']]") : 
  object 'some_list[['element1']]' not found

我无法弄清楚为什么会这样。当与其中没有引号的字符串一起使用时,get()可以正常工作,例如

get("some_list")

我也尝试转义字符串中的引号(虽然我不需要这样,因为它们是单引号)但它也不起作用。

some_list[["\'"element1"\'"]]

我错过了什么。

2 个答案:

答案 0 :(得分:2)

get不会这样做。

some_list[['element1']]不是R环境中对象的名称(在技术意义上)。在控制台上键入some_list[['element1']]时,R会解析表达式,查找符号some_list,然后调用函数[[get仅用于符号查找部分。

(从技术上讲,我的事件序列可能不对,但是我列出了这种方式来帮助解决问题。实际上,R只是解析表达式,然后用[[ >参数 some_list'element1',随后会查找这些符号。)

答案 1 :(得分:1)

报价与它无关。跑:     get("some_list")[['element1']]