aleksandr russell
2012-Aug-24 09:50 UTC
[R] diagonal matrix, array attributes and how to keep from setting an attribute on "NULL"
Hello, I've put the short version here and if anyone wants to run the code with CollocInfer, I've given the full version in the file "analysis". I come at the question of array attributes and dimnames to try to simplify. In a CollocInfer LS.profile analysis using this array 'Y' constructed as follows: w=rnorm(41,.05) z=rnorm(41,.06) yX<-cbind(w,z) y<-as.array(yX) colnames(y)=c("V","R") Y<-array(0,c(41,2,2)) Y[,1,]=y Y[,2,]=y I receive an error Error in as.array.default(Y) : attempt to set an attribute on NULL So I think to name the attributes : varnames=c("V","R") rownames(Y)<-rownames(Y, do.NULL = FALSE, prefix = "Obs.") colnames(Y)[1:2]=c("one","two") assign("dimnames(Y)",list(rownames(Y),varnames,colnames(Y))) Y2<-as.array(Y,dimnames=dimnames(Y)) assign("Y",Y2) then rerun the analysis with the same result Now traceback() gives: 7: as.array.default(Y) 6: as.array(Y) 5: kronecker(X, Y) 4: kronecker(X, Y) 3: diag(rep(1, nrep)) %x% basisvals$bvals.obs 2: LS.setup(pars, coefs, fn, basisvals, lambda, fd.obj, more, data, weights, times, quadrature, eps = 1e-06, posproc, poslik, discrete, names, sparse) 1: Profile.LS(fhn, data = data2, times = times, pars = pars, coefs = coefs, lambda = lambda, out.meth = "nls", control.in = control.in, control.out = control.out) the first four numbers here(7..4) seem okay when I call each; but in number 3: calling the given text produces the error: error in evaluating the argument 'X' in selecting a method for function 'kronecker': Error in diag(rep(1, nrep)) : error in evaluating the argument 'x' in selecting a method for function 'diag': Error: object 'nrep' not found At the outset in the manual, Hooker refers to the diagonal matrix, it seems without further explanation: In order to demonstrate replicated observations, we make use of another set of data generated at dierent initial conditions. We then need concatenate these ob- servations in time, and create new values for bvals and weights. The function diag.block from the simex package is used below, but there are several packages in R that provide block-diagonal matrices. I have a feeling this diagonal matrix is a component of R analysis that, if corrected here, could produce results, and I would be grateful if anyone who has experience with its use could offer some help. A -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: analysis.txt URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20120824/19f49f7b/attachment-0002.txt>