Запустите и «завершите» погружение изнутри функции - PullRequest
0 голосов
/ 08 июня 2018

Я хочу использовать сток внутри функции.

Позволяет создать файл с воспроизводимым примером:

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()

И да, к сожалению, я должен настаивать на том, чтобы вызывать его изфункция;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...