2012-12-04 48 views
1

我有一個通用的打印功能,我認爲我已經正確地設置了基於通用功能(LINK,無可否認有點難以掌握)和這個問題(LINK)。但是,它仍然在檢查中發出警告。下面是一個模擬功能,打印方法,roxygen文檔和檢查錯誤。有關打印功能的背景知識;基本上我希望輸出看起來不像是類,但它仍然帶有一個用於通過後續函數處理該對象的類。如何使警告消失(並保持打印功能)?通用打印功能roxygen2

FUN <- function(x) { 
    class(x) <- "full_matrix" 
    x 
} 

#' Prints a fuul_matrix object 
#' 
#' prints a test object 
#' 
#' @param full_matrix The full_matrix object 
#' @method print full_matrix 
#' @S3method print full_matrix 
print.full_matrix <- function(full_matrix) { 
    x <- full_matrix 
    class(x) <- NULL 
    print(x) 
} 

x <- FUN(mtcars) 
x 
class(x) 

警告:

* checking S3 generic/method consistency ... WARNING 
print: 
    function(x, ...) 
print.full_matrix: 
    function(full_matrix) 

print: 
    function(x, ...) 
print.incomplete_matrix: 
    function(incomplete_matrix) 

See section 'Generic functions and methods' of the 'Writing R 
Extensions' manual. 

回答

2

Writing R Extensions

的方法必須具有通用的所有參數,包括...如果通用一樣。

你的方法既沒有x也不...

+0

我不明白。現在我知道了。不能聲稱理解所有內容,但我認爲print方法必須將類名稱作爲參數。它的功能名稱告訴打印方法它正在做什麼。 –

+1

我在想你要寫'print.full_matrix < - function(x,...)print(unclass(x),...)' – GSee

+0

讓我試試看看。 –