记录软件包时,重新充氧错误(“ $运算符对原子向量无效”)

时间:2019-09-24 22:54:03

标签: r

我以前能够成功构建此软件包,并且在我致电devtools::check()时通过了所有检查,没有警告/注释。我刚刚添加了一些新功能并更新了文档,现在当我尝试运行devtools::document(roclets=c('rd', 'collate', 'namespace'))时,出现以下错误:'错误:$运算符对原子向量无效。

我尝试使用roxygen2 :: roxygenize并在我的代码中找到任何杂散的“ $”,但是没有运气。我不确定在哪里使用$运算符会导致此问题。

我发现错误来自roxygenize命令的“ rd”生成阶段,因为当我运行devtools::document(roclets=c('collate', 'namespace'))时,我得到了另一组错误。在这种情况下,我会在“警告:@tag [row#x]:未知标签”的行中收到针对每个R文件中每个标签的一系列警告。

在运行traceback()之后运行devtools::document(roclets=c('rd', 'collate', 'namespace'))时,我得到以下信息:

16: paste0("@", x$tag, if (x$file != "") paste0(" [", x$file, "#", 
        x$line, "]"), ": ", message)
15: make_tag_message(x, paste0(...))
14: warning(make_tag_message(x, paste0(...)), call. = FALSE, immediate. = TRUE)
13: roxy_tag_warning("should have only a single argument")
12: registry[[x$tag]](x)
11: FUN(X[[i]], ...)
10: lapply(tokens, parse_tag, registry = registry)
9: vapply(x, is.null, logical(1))
8: compact(lapply(tokens, parse_tag, registry = registry))
7: parse_tags(tokens, registry = registry, global_options = global_options)
6: .f(call = .l[[1L]][[1L]], srcref = .l[[2L]][[1L]], tokens = .l[[3L]][[1L]], 
       ...)
5: purrr::pmap(list(call = as.list(parsed)[has_tokens], srcref = refs[has_tokens], 
       tokens = tokens[has_tokens]), block_create, registry = registry, 
       global_options = global_options)
4: FUN(X[[i]], ...)
3: lapply(files, tokenize_file, registry = registry, global_options = global_options)
2: parse_package(base_path, env = NULL, registry = registry, global_options = options)
1: roxygen2::roxygenize("D:\\Transposon_Work\\packFinder")

由于我已经在整个文档中搜索了我使用过的每个“ $”运算符,因此我不确定包括更多文档和添加功能如何会导致此错误。我认为问题可能与我的.Rbuildignore文件有关,该文件每次运行roxygenize时都会自动生成,如下所示:     ^。*。Rproj $     ^ .Rproj.user $

我的github可以在这里找到:https://github.com/jackgisby/Transposon_Search 此外,我的本地副本具有以下内容: -.git文件夹 -.gitignore文件夹 -.rproj.user -。历史 这些不在.Rbuildignore中。

1 个答案:

答案 0 :(得分:0)

经过反复试验,我发现删除在data /中记录了我的数据的R文件使我可以无错误地调用devtools::document(roclets=c('collate', 'namespace'))。经过进一步调查,我意识到从每个文件中删除标签@docType data也可以解决该错误。但是,我不确定为什么这会引起问题,因为我以前可以使用此标记来记录这些功能-尽管自那时以来我已将其添加到文档中。

已删除这些标签的文件如下:

最后,通过删除Rdata文档中的roxygen @docType data标签可以解决此问题,但是我不确定为什么会这样。