重新导出r包中的数据集

Indrajeet帕蒂

R软件包中,有可能会重新导出功能。这样可以轻松地回收相同的功能,而不必在不同的程序包之间重复代码。

例如,devtools::session_infofunction是以下内容的重新导出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软件包中无法实现这些想法,我将不胜感激

肯·贝努瓦

在装入的包中以与函数名称空间不同的方式搜索数据,因此从技术上讲它不是导出。但是您可以重新导出另一个包的数据集,该数据集将以相同的方式操作,但有一个例外:使用该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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章