In order to aid myself with displaying debugging information, I decided to create the following tiny function that would dynamically switch between displaying data in RStudio's internal data browser and simple character-based output, depending on capabilities of the platform, where my modules are being sourced at:
View <- function (...) {
if (.Platform$GUI == "RStudio")
View(...)
else
print(...)
}
This function is located, along with other utility functions, in the module <PROJ_HOME>/utils/debug.R
. All modules that need these functions, include it via source("../utils/debug.R")
.
Running my project's code on my Amazon EC2 instance's Linux console is fine. However, running it on the same virtual machine via RStudio Server results in the following error message:
Error: evaluation nested too deeply: infinite recursion / options(expressions=)?
Error during wrapup: evaluation nested too deeply: infinite recursion / options(expressions=)?
It seems to me that R gets confused as to which View()
function needs to be called. Initially, I assumed that RStudio overloads the utils::View()
and I tried to call it explicitly, but it failed. Then I thought that RStudio somehow defines its View()
implementation in global environment, so that it just needs to be called View()
without package/library reference. However, as I you see, it doesn't work either. Another potential reason of the error might be that I overestimated the "smartness" of R in terms of my use of ...
arguments.
So, what is wrong and how to fix it?