Подавление сообщений об ошибках от внешних функций - PullRequest
2 голосов
/ 24 апреля 2020

Я использую функцию FixedPoint() из пакета FixedPoint для некоторых вычислений в R. Даже если невозможно найти фиксированную точку какой-либо функции, FixedPoint() все еще возвращает вывод (указывая на ошибку) и, дополнительно , возвращает сообщение об ошибке. Я хочу, чтобы любые такие дополнительные сообщения об ошибках не печатались. Кажется, что ни try(), ни suppressWarnings(), ни suppressMessages() не работают. Ниже приведен пример, который выдает такое дополнительное сообщение об ошибке.

library(FixedPoint)

ell=0.95
delta=0.1 
r=0.1
lambda=1
tH=1
tL=0.5
etaL=1
etaH=1


sys1=function(y){
  A=y[1]
  B=y[2]

  TA=(etaM*(1-exp(-(lambda*A+lambda*(A+B)+2*delta)*tL))-2*lambda*A^2-lambda*A*B)/2/delta
  TB=(etaM*exp(-(lambda*A+lambda*(A+B)+2*delta)*tL)*(1-exp(-(lambda*(A+B)+2*delta)*(tH-tL)))-lambda*B^2-lambda*A*B)/2/delta

  return(c(TA,TB))
}

FixedPoint(sys1,c(1.90,0.04))

1 Ответ

3 голосов
/ 24 апреля 2020

Кажется, это работает:

cc <- capture.output(ff <- FixedPoint(sys1,c(1.90,0.04)),type="message") 

, где ff теперь содержит нужный вывод. (С другой стороны, вы могли бы обернуть capture.output(...) в invisible() вместо назначения ее возвращаемого значения переменной.)

Кажется, проблема в том, что сообщение об ошибке исходит от un- silence -d try() предложение в коде пакета.

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