往往我们在直接摘抄其他代码的时候会遇到:函数对应的包未引用,继而导致系统提示"找不到对应函数"的情况。我们知道要library("相应的packages”),但是是哪个packages呢?本文就是解决类似的问题。
> SieRet100 <- tail(sort(abs(series(SieRet))),100)[1]
Error in series(SieRet) : could not find function "series"
方法一:help.search()
可以查到别名、概念、标题等与我们想要查找的内容匹配的vignettes、demos、help files.
方法二:使用utiles包
library(utiles)
RSiteSearch("...")
方法二:使用sos包
library(sos)
PL <- findFN("...") ###???是该函数的简单表达方式,返回的PL是data.frame类型。
???series ###???函数名 的格式进行搜索
使用???查询后返回的结果是两个table格式的链接,第一个是PackageSum2(提供了具有匹配项目的包的相关摘要),第二个是findFN表,具体罗列了相关包中可能满足要求的函数。
PackageSum2,见图一。
findFN返回的data frame包含的列名有Count、Maxscore、TotalScore、Package、Function、Date、Score、Description and Link,见图二。
Maxscore、TotalScore是排序的参考因素,Score是最后的总得分按照这个排序呈现出来的。
Function | 是指帮助页面的名称,而非函数名称。 多个函数是可能记录在单个帮助页面的,因为其他的帮助页面还会包括其他可能的类型的结果,例如数据集。 |
Package | 是包含Function的包的名称 |
Count | 提供findFN提供的所有可能的包下匹配的项目总数 |
Maxscore | 最大分数 |
Totalscore | 总分数 |
Date | 包龄 |
参考文献: sos.pdf