我正在编写一个包,如果我在我的Rstudio中运行它运行但是当我将它提供给R CMD检查运行时,它无法识别S3方法 . 我有一个通用的方法:

count_kmers <- function(obj, klen = 6, parallel = TRUE, 
                    nproc = ifelse(parallel, comm.size(), 1), 
                    distributed = FALSE) {
                          UseMethod("count_kmers", obj)
                }

然后是替代方法:

count_kmers.character <- function(obj, klen = 6, parallel = TRUE, 
                              nproc = ifelse(parallel, comm.size(), 1), 
                              distributed = FALSE) {...}
count_kmers.AAStringSet <- function(obj, klen = 6, parallel = TRUE, 
                                nproc = ifelse(parallel, comm.size(), 1), 
                                distributed = FALSE){...}

现在我在我的文档中运行的示例是:

seqs <- AAStringSet(c("seq1"="MLVVD",
                  "seq2"="PVVRA",
                  "seq3"="LVVR"))
## Count the kmers and generate a dataframe of the frequencies
freqs <- count_kmers(seqs, klen = 3, parallel = FALSE)
head(freqs)

如果我将代码作为普通代码运行它可以工作,但如果我使用R CMD检查它,那么它会抱怨:

Error in UseMethod("count_kmers", obj) : 
no applicable method for 'count_kmers' applied to an object of class "c('AAStringSet', 'XStringSet', 'XRawList', 'XVectorList', 'List', 'Vector', 'list_OR_List', 'Annotated')"

AAStringSet是Biostrings包中的对象 . 但这没关系,即使我将一个字符串传递给count_kmers,我收到同样的错误,但是说:

no applicable method for 'count_kmers' applied to an object of class "character".