与devtools :: document()和Install and Restart Button不同的语言环境

时间:2018-07-11 21:17:19

标签: r rstudio devtools

我的软件包在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"

确实带来一些不便,但有点令人沮丧。

0 个答案:

没有答案