是否可以列出可以为包设置的所有全局选项?

时间:2017-04-08 17:04:59

标签: r package options

tibble的插图中,我读到可以通过options在全局选项中进行一些更改,以控制打印的外观。但是,我在R中找不到任何关于此选项的手册。我甚至不知道哪些字段可以添加到包的全局选项中。所以问题是:

对于某个软件包,我们是否可以获取可以设置的字段列表(如tibble.print_maxtibble.print_min tibbleBioC_mirror utils)在知道它们之前通过options和R一起来?

2 个答案:

答案 0 :(得分:5)

处理可设置选项的方式由包作者自行决定(它们是否包含在.Options中,隐藏它们等)。看起来 tibble 包有一个隐藏变量op.tibble,它显示了可用的选项。

tibble:::op.tibble
# $tibble.print_max
# [1] 20
# 
# $tibble.print_min
# [1] 10
#
# $tibble.width
# NULL
#
# $tibble.max_extra_cols
# [1] 100

因此,以下内容将为您提供包中可用选项的名称。

names(tibble:::op.tibble)
# [1] "tibble.print_max"      "tibble.print_min"     
# [3] "tibble.width"          "tibble.max_extra_cols"

作为备注,我通过

找到了op.tibble
grep("op", ls(getNamespace("tibble"), all=TRUE), value=TRUE)
# [1] "op.tibble"  "stopc"      "tibble_opt"

然后单独查看这些项目。也许其他作者可能会做类似的事情。但是在包中定义选项没有一般规则。

答案 1 :(得分:5)

鉴于缺乏必要的练习(例如,在CRAN上)如何处理外部(甚至内部,我认为)的包中的选项,也许最通用的方法是这样的:

  1. CRAN mirror on GitHub上找到该包。例如,这里是tibble

  2. 在存储库中搜索“选项”以查找all references to "option" in the package's code

  3. 搜索此内容。知道要查找的内容需要一点敏锐的眼光,但这就是我了解到所有tibble选项都列在主包帮助页面(?"tibble-package")上的原因,因为我找到these lines进行搜索。

  4. 如果将repo克隆到您的计算机并使用命令行工具,则可以更好地自动化步骤3,例如

    cd package_dir
    grep option R/*
    

    (这与上面的内容非常类似,但可以实现grep

    的完全灵活性

    只是需要进一步确认,这种方法也让我来到data.tablextable的正确位置。