我正在编写一个包,如果我在我的 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".