R 使用';as'/从我的包中的另一个包强制方法

R 使用';as'/从我的包中的另一个包强制方法,r,R,我正在编写一个R包,并希望在内部使用另一个包中的“as”函数来强制对象。但是我不知道如何像通常导出的函数一样在包中导入它(使用importFrom或::) 我如何将“as”方法的特定风格从另一个包导入到我的包中?还是其他包中的所有“as”方法 具体地说:我的软件包(celaref)中的“对比每个组到rest”函数只有在调用library(MAST)和library(celaref)时才起作用 我希望它使用的“as”方法在导入“MAST”包时显示在showMethods(“强制”)中 例如,使用演

我正在编写一个R包,并希望在内部使用另一个包中的“as”函数来强制对象。但是我不知道如何像通常导出的函数一样在包中导入它(使用importFrom或::)

我如何将“as”方法的特定风格从另一个包导入到我的包中?还是其他包中的所有“as”方法

具体地说:我的软件包(celaref)中的“对比每个组到rest”函数只有在调用library(MAST)和library(celaref)时才起作用

我希望它使用的“as”方法在导入“MAST”包时显示在
showMethods(“强制”)中

例如,使用演示数据

library(celaref)              # my package, uses MAST internally
library(SingleCellExperiment) # a dependancy
# library(MAST)               # Uncomment this and it works
contrast_each_group_to_the_rest(demo_ref_se, num_cores=1)
Yeilds错误:

Error in as(sca, "SingleCellAssay") : 
  no method or default for coercing “SingleCellExperiment” to “SingleCellAssay”

谢谢。

尼尔·富尔茨建议:

您可以尝试添加importFrom(“方法”,as)-github.com/cran/Matrix /blob/master/NAMESPACE#L24这让我觉得MAST可能需要添加它 到它们的名称空间

这项工作:

#@importFrom“methods”作为函数头中的

importFrom(“方法”,as)
在命名空间中

更正-实际上,这似乎不像我想象的那样有效。欢迎提供更多提示。

修复-在函数头(oops)中导入MAST,并使用一种奇怪的“as”格式,我不太理解。(可能取决于这些包中的实际(非常相似)数据对象)


sca您可以共享您的名称空间文件吗?名称空间在这里:描述在这里:您可以尝试添加
importFrom(“方法”,as)
-这让我认为MAST可能需要将其添加到其名称空间中。感谢Neal-这已经修复了它。将@importFrom“methods”作为
添加到roxygen2的我的函数头doco中,以在命名空间中呈现为
importFrom(“methods”,as)
。只是必须记住在方法周围加上引号,因为如果没有,它似乎不起作用,不确定为什么。
#' @import SummarizedExperiment
#' @import MAST
sca <- new("SingleCellAssay")
as(sca, "SingleCellExperiment") <- sce.in