2013-01-20 59 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