Search code examples
rshinysparse-matrix

invalid or not-yet-implemented 'Matrix' subsetting in Shiny


When I run my shiny application, I got an error message saying

Error in prob[tw, uni.c] : invalid or not-yet-implemented 'Matrix' subsetting

That same code ran without error when it was not on Shiny. Any idea how I can troubleshoot this?

I'm not sure how to reproduce the data here, but prob is of class dgCMatrix from the Matrix package, tw is a single integer, and uni.c is a numeric vector.

EDIT:

sessionInfo() output:

R version 3.1.1 (2014-07-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=English_Singapore.1252  LC_CTYPE=English_Singapore.1252    LC_MONETARY=English_Singapore.1252
[4] LC_NUMERIC=C                       LC_TIME=English_Singapore.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] shiny_0.10.1 Matrix_1.1-4

loaded via a namespace (and not attached):
 [1] bitops_1.0-6    caTools_1.17.1  digest_0.6.4    grid_3.1.1      htmltools_0.2.6 httpuv_1.3.0    lattice_0.20-29
 [8] Rcpp_0.11.3     RJSONIO_1.3-0   tools_3.1.1     xtable_1.7-4   

Solution

  • It turned out to be a bug in my code that is exposed by how Shiny works.

    Outside Shiny, the function where the code resides worked seamlessly, being fed input from another function in the right format.

    In Shiny, I expected the function in server.R to receive the input after the submitButton button is pressed, with sensible input keyed into the field. Apparently, even before the first press of button, the default value in the input field (which was not a sensible one) was passed to my function. That default value is not well-handled by my function and caused the error. Both changing the default value, and building extra error-checking in my function, worked to solve the issue.

    Apologies for the confusion; this was a learning experience to be careful with default values and with Shiny processing sequence.