> > On Jan 4, 2016, at 11:17 PM, Lietz, Haiko <haiko.li...@gesis.org> wrote: > > > > hi all, > > > > when dputting a list of sparse matrices (Matrix package), the output does > > not contain the data but the information that the list contains sparse > > matrices. > > > > M <- sparseMatrix(i = c(2, 1), j = c(1, 2), x = c(1, 1)) > > > > dput(M) ... works. > > > > dput(list(M, M)) ... does not work. > > > > how can I dput a list of sparse matrices?
> > MM <- list(M,M) > > dput(MM) > list(<S4 object of class structure("dgCMatrix", package = "Matrix")>, > <S4 object of class structure("dgCMatrix", package = "Matrix")>) > No problem. > I do get an error (clarifying the "did not work" statement), as (perhaps) did > you? > > dput(M,M) > Error in cat("new(\"", clx, "\"\n", file = file, sep = "") : > invalid connection > Perhaps the `dput` function was not configured to handle two S4 objects in a > list? Indeed. As a matter of fact, a long time I ago I had added a 'FIXME' comment to the R source code of dput: see https://svn.r-project.org/R/trunk/src/library/base/R/dput.R which contains ## FIXME: this should happen in C {deparse2() in ../../../main/deparse.c} ## but we are missing a C-level slotNames() ## Fails e.g. if an S3 list-like object has S4 components if(isS4(x)) { clx <- class(x) cat('new("', clx,'"\n', file = file, sep = "") for(n in methods::.slotNames(clx)) { cat(" ,", n, "= ", file = file) dput(methods::slot(x, n), file = file, control = control) } cat(")\n", file = file) invisible() } else .Internal(dput(x, file, opts)) Ideally the above code would be replaced by simply .Internal(dput(x, file, opts)) and the C code called in do_dput() in https://svn.r-project.org/R/trunk/src/main/deparse.c would be improved to do the above in C and be properly recursive. (Tested) patches are very welcome! Martin Maechler, ETH Zurich and R Core Team ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.