【问题标题】:Importing S4 functions from the Matrix package从 Matrix 包中导入 S4 函数
【发布时间】:2014-11-06 15:56:45
【问题描述】:

Matrix 包定义了一大堆用于矩阵相乘的 S4 方法,这些方法由 S4 通用函数 %*%crossprodtcrossprod 分派。

如何导入“%*%”方法,以便在我自己的包中使用?这段代码在我运行devtools::document()时失败:

#' @title my function
#'
#' @description Does magic Matrix stuff
#' @import methods
#' @importFrom Matrix "%*%" Diagonal
myfun <- function(x, y){
  x %*% Diagonal(x=y)
}

如果 x 是稀疏矩阵,我想确保此函数使用 Matrix 包中的稀疏矩阵乘法方法。但是当我运行devtools::document() 时,出现以下错误:

Updating mypackage documentation
Loading mypackage
Error: object ‘%*%’ is not exported by 'namespace:Matrix'

【问题讨论】:

标签: r package sparse-matrix s4 roxygen2


【解决方案1】:

您应该使用@importMethodsFrom 并删除运算符周围的引号。您可能还想使用@export 导出函数(您可能已经知道这一点,但它使答案更完整)。以下对我有用,没有错误。

#' @title my function
#'
#' @description Does magic Matrix stuff
#' @import methods
#' @importFrom Matrix Diagonal
#' @importMethodsFrom Matrix %*%
#' @export
myfun <- function(x, y){
    x %*% Diagonal(x=y)
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-14
    • 1970-01-01
    • 2011-08-21
    • 1970-01-01
    相关资源
    最近更新 更多