list all functions on CRAN
Asked Answered
D

2

7

Suppose I'm trying to run a script of unknown origin, and one of the functions is from a package that is not loaded by the script (an oversight, maybe it was loaded in the .Rprofile of the person who wrote it). How can I find in which package this function resides?

There's some information compiled on CRAN, that doesn't require the user to download/install all R packages locally; however as far as I could tell it only gives access to the DESCRIPTION files. RSiteSearch, and its web equivalent, seem to access an online database of all CRAN packages, where presumably a list of all functions would be available. Is there some way of accessing this information?

Thanks.

Edit: I know sos::findFn, utils::RSiteSearch and search.r-project; what I would like is to get the raw data that these tools use.

Dian answered 8/7, 2012 at 0:36 Comment(2)
Did you see finzi.psych.upenn.edu/~baron/notes.namazu.txt. It looks like it includes the methods used to build the search.r-project DB, which looks like what sos uses as well.Howardhowarth
@blindJesse no I had not, thanks! It looks like they install all packages... so I guess the solution would be to ask them nicely to produce such a list as a downloadable file.Dian
A
7

You can use the sos package, for example:

library(sos)
findFn("adply")

The output is an html including links to online documentation packages.

Abednego answered 8/7, 2012 at 0:54 Comment(3)
Yes. sos::findFn is both faster than the system "??" function, as well as covering hte full range of CRAN, while "??" only covers installed packages.Quillan
thanks, but I'm looking for a list of functions that I could download once and use without internet access. There must be some database at search.r-project.Dian
Looking at the body of sos::findFn, it seems to be using a CGI script at search.r-project.org/cgi-bin/namazu.cgi which does a web search within finzi.psych.upenn.edu/R/library. My gut feeling is there is no such database, just this big library of unpacked packages to parse through.Abednego
S
4

collidr package will give you this

library(collidr)
collidr::CRAN_packages_and_functions()

It will return a list of packages and their functions from CRAN i.e.


#          package_names                function_names
# 1                   A3                    A3-package
# 2                   A3                            a3
# 3                   A3                       a3.base
# 4                   A3                a3.gen.default
# 5                   A3                         a3.lm
# 6                   A3                         a3.r2
# 7                   A3                       housing
# 8                   A3            multifunctionality
# 9                   A3                       plot.A3
# 10                  A3               plotPredictions
#    ...             ...                           ...
# 294181            ZVCV                          getX
# 294182            ZVCV              helper_functions
# 294183            ZVCV                           VDP
# 294184            ZVCV                          zvcv
# 294185            ZVCV                  ZVCV_package
# 294186             zyp                   confint.zyp
# 294187             zyp                           zyp
# 294188             zyp                       zyp.sen
# 294189             zyp                 zyp.trend.csv
# 294190             zyp              zyp.trend.vector

Sheepcote answered 18/5, 2019 at 17:11 Comment(2)
The function is now called collidr::CRAN_packages_and_functions().Move
@Move collidr::getCRAN() may also be useful (as it's more up to date, although it is also slower; ~10 seconds for me)Sheepcote

© 2022 - 2024 — McMap. All rights reserved.