从函数中运行并“结束”接收

时间:2018-06-08 13:46:36

标签: r

我想在函数中使用接收器。

让我们创建一个文件以获得可重现的示例:

write.table("stop('error message')", "sampleError.R")

首先是一个工作示例 - 在函数外部:

con <- file("test.log")
sink(con, append = TRUE)
sink(con, append = TRUE, type="message")

source("sampleError.R", echo = TRUE, max.deparse.length = 10000)

sink() 
sink(type = "message")

logFile <- readLines("test.log")

现在失败尝试在函数中调用它。失败的是记录未完成,并且必须在函数外部调用sink()命令以完成日志创建。

f <- function(){
  con <- file("test.log")
  sink(con, append = TRUE)
  sink(con, append = TRUE, type="message")

  source(filePath, echo = TRUE, max.deparse.length = 10000)

  sink() 
  sink(type = "message")

  logFile <- readLines("test.log")
}
f()

是的,不幸的是,我必须坚持从函数中调用它;)

0 个答案:

没有答案