4

我正在编写一个包,如果我在我的 Rstudio 中运行代码,它会运行,但是当我将它交给 R CMD check 运行时,它无法识别 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 check 检查它,它会抱怨:

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".
4

0 回答 0