2014-11-06 13 views
12

패키지는 S4 일반 함수 %*%, crossprodtcrossprod에 의해 전달되는 행렬을 곱하는 S4 방법의 전체 묶음을 정의합니다.Matrix 패키지에서 S4 함수 가져 오기

내 패키지에 사용할 "% * %"메서드를 가져 오는 방법은 무엇입니까? 내가 x는 희소 행렬의 경우이 기능이 매트릭스 패키지에서 희소 행렬 곱셈 방법을 사용 있는지 확인하려면

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

: 나는 devtools::document()를 실행할 때이 코드 조각은 실패합니다.

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

이 마지막 섹션 읽기 : http://r-pkgs.had.co.nz/namespace.html – Roland

+0

'@import의 methods' 내 문제를 해결할 수 없으며,'@importMethodsFrom 매트릭스 "%를하지 않았다을 * % "'. – Zach

답변

8

당신은 @importMethodsFrom를 사용하여 작업자 주위에 따옴표를 제거해야합니다 : 나는 devtools::document()을 실행할 때 나는 다음과 같은 오류가 발생합니다. @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) 
}