2014-07-24 80 views
1

我希望在get()的字符串中使用引號可以得到一些幫助。在get函數中使用引號(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"\'"]] 

我錯過了什麼。

+0

真的,你可能不應該使用'get'。這是一個跡象,表明你可能沒有以類似R的方式做某件事。 – MrFlick

回答

2

get不會這樣做。

some_list[['element1']]不是R環境中對象的名稱(從技術角度而言)。當在控制檯鍵入some_list[['element1']]時,R解析表達式,查找符號some_list,然後調用函數[[get僅用於查找符號。

(從技術上講,我的一系列事件有可能是不正確的,但我列出了他們的方式,以幫助使這個問題清楚了。真的,R是剛剛解析表達式,然後調用[[參數some_list'element1',並且隨後查找那些符號。)

+0

優秀的解釋,我不知道[[是一個函數。通過懷疑引號成爲罪魁禍首,徹底咆哮錯誤的樹。謝謝 – SprengMeister

+0

@SprengMeister(幾乎)R中的所有內容都是函數調用! :) – joran

+0

爲了避免將來這樣的問題,@joran,你有推薦什麼樣的出版物/手冊等,解釋這些細節? – SprengMeister

1

引號與它無關。運行: get("some_list")[['element1']]