2017-12-02 80 views
0

關閉選擇變量列表說我有如何通過名稱的開頭字母R中

x = list(tau = 3, ga = rep(0,3))

但是創建的列表,現在我想測試一個變量tg包含在x,所以我用 is.null(x$t)

當然它返回到FALSE因爲x$t = 3。我怎樣才能關閉這種行爲?

更新:

OK,我的目標就是,識別,因爲在我的代碼gga兩者都意味着充分和是變量的真實姓名,如果有一個變量g載。也就是說,如果包含或不包含g代表兩種不同的情況,並且我沒有要求巧妙地選擇來自x的變量。

我目前的方式是使用x[['g']],這返回我想要的。我在想我是否可以關閉這種全球環境行爲?

+0

如何關閉這種「部分美元匹配」行爲,我認爲這應該是關鍵。 –

+0

請參閱編輯我的答案以獲得正確答案。第一部分回答你的問題標題,編輯回答你的評論。 –

回答

2

您可以嘗試類似:

x = list(tau = 3, ga = rep(0,3)) 

x[-which(substr(names(x),1,1)== "t")] 

應該只返回$ga

編輯

如果你想不自動完成列表上搜索名稱,避免使用$t,而使用[["t"]]

在你的例子中,你會想要is.null(x[["t"]])這是真實的。

+0

是的,我現在正在使用這種方式。 –

+0

如果這有助於你並回答了你的問題,請將此問題標記爲左邊的複選標記。 –

+0

讓我們來看看是否有人會回答我們是否可以在'option'中關閉這樣的部分匹配,如果沒有,那麼您的是標記的。 –

相關問題