As a general rule, this common ‘subsettable’ error message indicates you have attempted to treat a dataset variable which is a function as if it were an index-able data type such as data frame causing this inner problem in your R ecosystem. This R user error frequently occurs when you are building web applications using the shiny application R ecosystem package/framework using the reactive () R function.
For those not familiar with functional programming, a closure refers to a function (created at run-time) that can be passed around like a variable with the intention of using the R code in specific ways that only variable have the ability to process. This programming approach can significantly simplify code development and data analysis in the R programming language.
For R shiny app development, this ‘subsettable’ error message frequently occurs after you have created objects such as a data frame, list, and character vector using the reactive() R function. It is tempting to attempt to treat the R object after this point as if it were an ordinary index-able data type, using brackets to reference specific elements of the data object. Which will result in the server error message in question: ” object of type closure is not subsettable .”
For R shiny app development, remember you need to use brackets when referencing an R object created using the reactive () function. Something like this base R code example for instance:
If you get this error output during other types of R code development, double check your variable names to make sure you’re not mixing variable names. Along the same lines, avoid naming variables the same (or similar) names as the functions contained within the base R library to reduce the risk of creating an “Object of type closure is not subsettable” problem via a typo.
Error: object of type ‘closure’ is not subsettable