2013-01-20 97 views
16

如何找到所有具有特定參數的函數的名稱和位置?有沒有辦法找到他們在全球環境中的功能,附加的軟件包和已安裝的軟件包?使用特定參數查找函數

+0

@Arun:是的,但它的切向原來的問題,所以1)它不太可能有人會通過搜索找到它,和2)很可能是問題將被刪除。 –

+0

你問的任何特定原因?畢竟,函數參數的名稱幾乎是任意的,例如,agstudy的優秀答案中的參數'x'和'arg'。有些像我這樣的智能手機,看到你的要求,可能會重寫他的軟件包,所以xlim,ylim'這個參數突然變成'xlims,ylims',只是爲了讓你發瘋。 :-) –

回答

14

我假設你問這個問題只是爲了不失去Ben great answer. 這裏我稍微修改本答案搜索任何參數:

uses_arg <- function(x,arg) 
    is.function(fx <- get(x)) && 
    arg %in% names(formals(fx)) 

例如獲得功能與na.rm參數:

basevals <- ls(pos="package:base")  ## package name : here I use the base package 
basevals[sapply(basevals,uses_arg,'na.rm')] 

編輯

更好地結合name說法lsasNamespace

basevals <- ls(asNamespace('base')) 
basevals[sapply(basevals,uses_arg,'na.rm')] 
+0

被## base和stats packages弄糊塗了,我沒有看到'stats'中的任何內容,只是'base'? – Silverfish

+1

@Silverfish你是對的這是錯字!我糾正它。 – agstudy