簡體   English   中英

github dev R package 的函數和元數據的訪問列表

[英]Access list of functions and metadata for github dev R package

請注意:這是從此處交叉發布的,尚未收到回復。 所以我在這里添加它。

我目前正在 github 上共同開發一個R package,它可以像往常一樣使用devtools::install_github('repo/pkgname)安裝。

我們努力使用roxygen2來記錄各個函數。 我們將函數拆分為“內部”( @keywords internal )與“外部”( @export ),以便用戶可以使用外部函數,即pkgname::external_<fn_name>並訪問文檔。 如果他們願意,他們也可以使用:::來訪問內部函數。

對於我們的 package 的一些元分析,如果有一個功能可以產生一個帶有以下列的整潔的小標題,那就太好了:

  • function 名稱,
  • function 類型,即內部/外部(用戶可通過:::::訪問)
  • 更多元數據,例如包含每個 function 的參數名稱的另一列,即@param
  • 每個參數的文檔字符串

作為 dplyr 的粗略版本(非 tibble 格式)。 可以執行以下操作:

library(dplyr) # Assume installed already
ls('package:dplyr')

這會生成 function 名稱的字符向量,但不會生成包含更有用元數據的整潔小標題。

理想情況下,我們將能夠在 package 開發中執行devtools::load_all(".")后生成此 tibble,以實時跟蹤更改。

是否有任何現有的R包可以幫助生成這樣的元數據tibble 或者可以使用現有的R包開發這樣的 function 嗎?

將不勝感激與此相關的任何幫助。

我對我的問題有一個答案,這可能對其他人有所幫助。 事實證明,可以使用驚人的pkgdown package 訪問此元數據。

當您打開附加到您正在開發的 package 的 RStudio 項目時,請參閱下面的代碼(使用devtools ):

# Setup - install required libraries
# install.packages(c("pkgdown", "here"))

# If you are in your local package directory, run the following
# to get the required package metadata
pkg <- pkgdown::as_pkgdown(pkg = here::here())

# Inspect the topics object, which contains function metadata
pkg$topics %>% dplyr::glimpse()

# Get list of all functions and just required metadata
pkg_fns_all <- pkg$topics %>%
    dplyr::select(name, file_in, internal)

# Get the non-internal functions, acccessed using pkgname::function
pkg_fns_user <- pkg_fns_all %>% dplyr::filter(!internal)

# Get the internal functions, acccessed using pkgname:::function
pkg_fns_internal <- pkg_fns_all %>% dplyr::filter(internal)

希望這對其他人有所幫助:slight_smile:

一些小的突出項目:

  • 我不確定如何從上面訪問單個 function @param值,但如果有人可以添加一些細節,那將很有用。
  • 我不確定如何將其應用於我的系統上安裝的CRAN軟件包,例如dplyr

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM