将R包函数索引打印到控制台

pet*_*ens 7 r

我想将R包的文档打印到控制台.干

utils:::.getHelpFile(help("print"))
Run Code Online (Sandbox Code Playgroud)

工作得很好,但当我尝试

utils:::.getHelpFile(help(package="MASS"))
Run Code Online (Sandbox Code Playgroud)

我收到一个错误说明:

Error in dirname(file) : a character vector argument expected
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:如何将R包(即help(package="package_name"))的文档打印到控制台?提前致谢.

Ric*_*ven 7

help(package = "MASS")将您带到MASS包的INDEX文件,在浏览器窗口中打开(取决于您的设置).要将该文件读入控制台,我们可以使用获取文件路径,然后将其作为字符向量读取.system.file()readLines()

## get the complete file path for the index file of the MASS package
f <- system.file("INDEX", package = "MASS")
## read it
readLines(f)
# [1] "Functions:"                                  
# [2] "========="
# [3] ""
# [4] "Null                    Null Spaces of Matrices"
# [5] "addterm                 Try All One-Term Additions to a Model"
# [6] "anova.negbin            Likelihood Ratio Tests for Negative Binomial GLMs"
# ...
# ...
Run Code Online (Sandbox Code Playgroud)

或者我们可以将其包装起来cat()以获得更清洁的版本

cat(readLines(f), sep = "\n")
# Functions:
# =========
#
# Null                    Null Spaces of Matrices
# addterm                 Try All One-Term Additions to a Model
# anova.negbin            Likelihood Ratio Tests for Negative Binomial GLMs
# ...
# ...
Run Code Online (Sandbox Code Playgroud)

或者,您可以获得相同的结果

readLines(file.path(find.package("MASS"), "INDEX"))
Run Code Online (Sandbox Code Playgroud)

最后,如果您想知道html浏览器顶部显示的包描述和新闻的链接,那么可以通过

packageDescription("MASS")
news(package = "MASS")
Run Code Online (Sandbox Code Playgroud)