2017-04-08 107 views
3

tibble的小插圖中,我發現可以通過options在全局選項中進行一些更改來控制打印的外觀。但是,我沒有在R中找到這個選項的任何手冊。我甚至不知道可以將哪些字段添加到包的全局選項。所以,問題是:是否可以列出可以爲包設置的所有全局選項?

對於一個包,我們可以得到的字段列表(如tibble.print_maxtibble.print_mintibbleBioC_mirrorutils),可通過options與R中知道擺在他們面前?

回答

4

由於缺乏必需的實踐(例如,在CRAN)對如何處理外部(甚至是內部的,據我可以告訴)封裝選項,也許是最普遍的做法是這樣的:

  1. CRAN mirror on GitHub上查找包裝。例如,這裏是tibble

  2. 在存儲庫中搜索「選項」以查找all references to "option" in the package's code

  3. 通過這項搜索。需要一點敏銳的眼光才能知道要尋找什麼,但這是我學會了如何在主包幫助頁面(?"tibble-package")中列出所有tibble的選項,因爲我找到了these lines與搜索。

如果您將repo克隆到您的機器並使用命令行工具(例如,

cd package_dir 
grep option R/* 

(這是相當類似上面,但啓用的grep充分的靈活性)

只是爲了補充確認,這種做法使我在正確的地方爲data.tablextable爲好。

5

可設置的選項的處理方式由程序包作者決定(無論它們是否包含在.Options中,使它們隱藏等)。它看起來像蹣跚包有一個隱藏變量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" 

作爲一個說明,我做

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

,然後在這些項目尋找單獨找到op.tibble。也許其他作者可能會做類似的事情。但是沒有定義包中的選項的一般規則。

+0

另外'''tibble-package「'列出了這些。但是更普遍的問題是「給定一些隨機包'foo',我怎麼知道它有哪些'options'可用」 - 我不知道有一個一致的答案。 – MichaelChirico

+0

@MichaelChirico - 不,因爲軟件包作者可以通過選項做任何他們想做的事情。 –

+1

正確,這似乎不是最佳實踐......在探索新軟件包的功能時,它似乎是一件有用的事情......我們知道在哪裏可以找到所有的手冊頁,但如果選項可能會變得灰濛濛的他們不容易找到 – MichaelChirico

相關問題