小编Bil*_*ney的帖子

我可以从roxygen2示例中自动生成测试单元测试吗?

我正在研究R的PKNCA包.在开发测试代码时,一些测试也是很好的例子.我想把它们作为两者(测试和示例).有没有办法可以在roxygen2文档中嵌入一些内容,这些内容也会被复制到测试中?

我在想的是文档,如:

#' @exampleTest
#' set.seed(5)
#' rnorm(1) ## -0.8409
Run Code Online (Sandbox Code Playgroud)

这会产生如下测试:

expect_equal({set.seed(5)
              rnorm(1)}, -0.8409, tol=1e-4)
Run Code Online (Sandbox Code Playgroud)

(tol来自这个事实,它是一个数字和示例中显示的位数.)

r roxygen2 testthat

7
推荐指数
1
解决办法
315
查看次数

是否可以为`docker build`设置MAC地址?

使用docker run,可以使用--mac-address选项修复MAC地址.我看了,我找不到修复MAC地址的方法docker build.我想将具有许可证固定到MAC地址的软件停靠(我不是试图绕过许可证;我正在尝试拥有更可重现的系统架构).

谢谢!

docker dockerfile docker-build

6
推荐指数
1
解决办法
3044
查看次数

查找没有默认值的函数参数

如何可靠地判断正式函数参数是否具有函数外部的默认值?

在下面的示例中,我想确保以下测试在参数具有或不具有默认值时将无法找到:

myfun <- function(a, b=1, ...) {}
formals(myfun)
for (n in names(formals(myfun))) {
  if (is.name(formals(myfun)[[n]])) {
    cat(n, "has no default value\n")
  } else {
    cat(n, "has a default value:", formals(myfun)[[n]], "\n")
  }
}
Run Code Online (Sandbox Code Playgroud)

is.name是我提出的最好的测试,但是我更愿意看到它是一个名字而且它是空的(或者更好的是更确定的测试,就像missing在函数内部提供的那样).

r

5
推荐指数
1
解决办法
82
查看次数

在 R 中捕获警告

我想将 R 中的警告捕获到文件中,然后让正常的警告代码接管。具体来说,我想将所有错误和警告记录到一两个文件中。对于错误,我可以通过向选项添加日志记录功能来使其工作error。但是,我找不到同样的方法来执行警告。我认为答案就在warning.expression选项中,但我无法使其发挥作用。

我现在正在尝试的内容如下。所有错误都会记录到文件“errors.txt”中,但“warnings.txt”中唯一的内容是一堆空行(消息文本不会保存,但会在每个警告中添加一行)。

对于我的解决方案,tryCatch这不是一个合理的选项,因为选项背后的遗留代码非常复杂,并且 tryCatch 在警告时停止执行。

logger.error <- function(file) {
  if (missing(file)) {
    stop("A filename must be given")
  }
  function() {
    cat(geterrmessage(), "\n", file=file, sep="", append=TRUE)
  }
}

logger.warning <- function(file) {
  if (missing(file)) {
    stop("A filename must be given")
  }
  function() {
    msg <- paste(names(warnings()), collapse="\n")
    cat("Warning: ", msg, "\n",
        file=file, sep="", append=TRUE)
  }
}

options(error=logger.error("errors.txt"),
        warning.expression=quote(logger.warning("warnings.txt")()),
        warn=1)

stop("test error")
warning("test warning")
a <- function(x) {
  if (x < 0) {
    stop("x …
Run Code Online (Sandbox Code Playgroud)

error-handling warnings r

5
推荐指数
0
解决办法
1760
查看次数

如何使用 knit/rmarkdown 自定义图形 LaTeX

我想在通过 LaTeX 生成 .pdf 文件的 rmarkdown 文档中使用 ggplot2 创建的图形在浮动中创建页脚。

我的问题: rmarkdown/knitr 中有没有办法在图形环境中添加更多 LaTeX 命令?

具体来说,我想找到一种使用floatrowcaption*宏插入自定义 LaTeX 的方法,如https://tex.stackexchange.com/questions/56529/note-below-figure中所述的图形环境中所述。

当我查看块选项(https://yihui.org/knitr/options/#plots)时,类似的东西out.extra似乎接近我想要的,但是\includegraphics当我想要访问放置额外的 LaTeX 时,它被用作额外的选项在图形环境内,在任何其他 LaTeX 命令之外。

r knitr r-markdown

5
推荐指数
1
解决办法
595
查看次数

是否可以在R中对别名数据进行别名

使用某些数据标准时,使用多种方法查看data.frame的列会更简单.作为一个具体的例子,当使用SDTM数据进行临床试验时,每种数据类型(如实验室或生命体征)都有一列用于实验室的名为"LBTPT"的时间点和用于生命体征的"VSTPT".在加载数据时,理想情况下,我希望能够将该列称为"LBTPT"或"TPT".

具体来说,我想找到一种方法来完成以下工作:

d <- data.frame(LBTPT=1:3)
d <- alias_column(d, TPT="LBTPT")
d$TPT == d$LBTPT
Run Code Online (Sandbox Code Playgroud)

但是,我希望数据只存储一次 - 它只是一个别名而不是副本.

而且,对于加分,就在"做什么,我的意思是"方式与像功能进行交互时工作merge,names<-,bind_rows,等.

r dataframe

3
推荐指数
1
解决办法
1549
查看次数