In a Python shell, and using rpy2 when I issue the following command
In [93]: x = robjects.r.bfast(data, h=0.1, season="none", max_iter=1)
[1]
"No seasonal model will be fitted!"
I get this non-desirable output
[1]
"No seasonal model will be fitted!"
Is there any way to suppress this output ? I would like to wrap this call to a function and then to an api call. Thus, redirecting output to stdout is non-desirable.
In other words, how to do in rpy2
:
sink("/dev/null")
Is there a better way than
robjects.r('sink("/dev/null")')
?
Apparently, the bfast method conditionally prints that message to console with no wrapper to not print which is not advisable code. Reach out to developers on a pull request.
Per this solution, consider R's capture.output
which returns character string of output.
...
from rpy2.robjects.packages import importr
utils = importr('utils')
bfast = importr('bfast')
# NOTICE R's PERIODS CHANGED TO UNDERSCORE TO FIT PYTHON'S OBJECT MODEL
x = utils.capture_output(bfast(data, h=0.1, season="none", max_iter=1))
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With