代码之家  ›  专栏  ›  技术社区  ›  Indrajeet Patil

在r包中重新导出数据集

  •  1
  • Indrajeet Patil  · 技术社区  · 7 年前

    R 包,则有可能重新导出函数。这使得回收相同的函数变得很容易,而不必在不同的包中重复代码。

    例如 devtools::session_info 函数是 sessioninfo::session_info

    #' @export
    #' @importFrom sessioninfo session_info
    sessioninfo::session_info
    

    但我不知道该怎么做。如果我这样做:

    #' @export
    #' @importFrom groupedstats Titanic_full
    groupedstats::Titanic_full
    

    我得到以下错误:

    object 'Titanic_full' is not exported by 'namespace:groupedstats'
    

    https://github.com/IndrajeetPatil/groupedstats/blob/master/NAMESPACE ). 但是这个数据集

    > vcdExtra::datasets("groupedstats")
    Loading package: groupedstats 
                 Item      class     dim                                                           Title
    1    Titanic_full data.frame  2201x5                                                Titanic dataset.
    2 intent_morality data.frame  4016x9               Moral judgments about third-party moral behavior.
    3     movies_long data.frame  2433x8 Movie information and user ratings from IMDB.com (long format).
    4     movies_wide data.frame 1813x14 Movie information and user ratings from IMDB.com (wide format).
    

    因此,如果您能想到如何实现这种数据再出口,或者这在中国是不可能的,我将不胜感激 R 包装。

    0 回复  |  直到 7 年前
        1
  •  1
  •   Ken Benoit    6 年前

    在加载的包中以不同于函数名称空间的方式搜索数据,因此从技术上讲,它不是导出。但您可以重新导出另一个包的数据集,该数据集将以相同的方式运行,但有一个例外:使用 data() data/ 数据对象的目录。下面是一个例子:

    将其作为“延迟加载”的数据集进行工作,例如。 myiris 如果您的包已附加,或使用 yourpackage::myiris ;

    data(myiris, package = "yourpackage") .

    #' @inherit datasets::iris description source references title
    #' @examples
    #' # works
    #' testdata::myiris
    #' # fails
    #' data(myiris, package = "yourpackage")
    #' @export
    myiris <- datasets::iris