在R中找到你需要的东西:在R和所有(3,500+)CRAN包中集中搜索

StackOverflow https://stackoverflow.com/questions/1812702

  •  06-07-2019
  •  | 
  •  

通常在R中,有十几个函数分散在尽可能多的包中 - 所有这些函数都具有相同的目的,但在准确性,性能,文档,理论严谨性等方面当然都有所不同。

你如何找到这些 - 从R内部甚至是你尚未安装的CRAN包中找到它们?

例如:通用 情节 功能。使用基础包的外部功能可以更轻松地设置辅助刻度:

minor.tick(nx=n, ny=n, tick.ratio=n)

当然 plot 在R core中,但 minor.tick 不是,它实际上在 Hmisc 中。

当然,这不会出现在情节的文档中,也不应该指向它。

另一个例子: plot 的数据输入参数可以由函数 hexbin 返回的对象提供,同样,这个函数来自外面的库 的R核心。

显然,从各种库中收集这些函数参数并将它们放在一个命名空间中的程序化方法是什么?

*编辑:(试图在上面更清楚地重新陈述我的例子:)在R core中提供的 plot 的参数,例如,设置轴刻度频率是xaxp / yaxp;但是,也可以通过基本包外部的函数设置/ t / f,就像在Hmisc包中的minor.tick函数一样 - 但是你不会知道只是从查看plot方法签名。 R中是否有元函数?*

到目前为止,当我遇到它们时,我一直在手动收集它们,每个集合收集在一个 TextMate 代码段(以及随附的库导入) 。这不是那么困难或耗时,但我只能更新我的代码片段,因为我发现了这些额外的参数/参数。是否有规范的R方式来做到这一点,或者至少是一种更简单的方式?

如果不清楚,我不是在谈论多个包提供针对相同统计或视图的功能的情况(例如,基础包中的'boxplot'; gplots中的'boxplot.matrix';和Rlab中的'bplots')。我所说的是两个或更多包中函数名相同的情况。

有帮助吗?

解决方案

sos "包是一个很好的资源。它的主要界面是“ findFn ”。命令,它接受一个字符串(你的搜索词)并扫描“函数”。 Johnathan Baron的站点搜索数据库中的条目,并在数据框(类“findFn”)中返回包含搜索词的条目。

此数据框的列为:计数最高分数总分数套餐功能日期得分说明链接。点击“链接”按钮在任何条目的行中将立即拉出帮助页面。

一个例子:假设您想在所有1800多个R包中找到所有卷积滤波器。

library(sos)
cf = findFn("convolve") 

此查询将查看术语“卷积”,换句话说,不必是函数名称。

键入“cf”返回找到的所有匹配项的HTML表(在本例中为23)。此表是我刚才提到的数据框的HTML呈现。特别方便的是,通过单击列标题可以对每列(“计数”,“MaxScore”等)进行排序,因此您可以通过“分数”,“包名称”查看结果,等

(顺便说一下:当运行那个确切的查询时,其中一个结果是名为“latticeExtra”的包中的函数“panel.tskernel”。我不知道这个包中有任何时间序列过滤器,我怀疑否则我会发现它。

其他提示

你的问题不容易回答。没有一个确定的功能。

formals 是一个函数,它为函数提供命名的参数,并在命名列表中提供它们的默认值,但是你总是可以通过获得变量参数。 .. 参数和隐藏的命名参数,嵌入了 hadArg 函数。要获取那些必须使用getAnywhere的列表,然后扫描hasArg的表达式。我想不出自己做的自动方式。也就是说,如果没有记录函数隐藏参数。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top