我的软件包在Roxygen模板中包括对sort
函数的调用。问题是sort
处理大小写的方式取决于语言环境,如果我直接调用devtools::document()
或单击RStudio中的“安装并重新启动”按钮(使用自动Roxygen),这似乎是不同的。生成帮助文档)。
如果我在RStudio中单击“安装并重新启动”或“检查”,则会发生相同的问题。每个按钮似乎都使用不同的语言环境启动R实例,因为每次都会以不同的大小写字符顺序重新编写帮助受影响的文档。
一个例子:
带有Roxygen的新R包中的两个功能:
#' Sort character string
#'
#' @param str A character string
#'
#' @return A sorted character string
#' @export
#'
sort_characters <- function(str) {
sort(str)
}
#' A test function
#'
#' @templateVar str b c a B C A
#' @template template
#'
#' @return A sorted string
#' @export
#'
testy <- function() {
str <- 'b c a B C A'
sort_characters(unlist(strsplit(str, ' ')))
}
'R / man-roxygen'中的template.R:
#' @section Sorted String:
#' <%= sort_characters(unlist(strsplit(str, ' '))) %>
安装并重新启动按钮调用devtools::document(roclets=c('rd', 'collate', 'namespace'))
,这将在Rd文件中显示以下内容:
\section{Sorted String}{
A B C a b c
}
直接调用devtools::document(roclets=c('rd', 'collate', 'namespace'))
(或运行devtools::check()
会导致:
\section{Sorted String}{
a A b B c C
}
在RStudio中调用testy()
会导致[1] "a" "A" "b" "B" "c" "C"
确实带来一些不便,但有点令人沮丧。