On Aug 17, 2012, at 9:25 AM, aleksandr shfets <a_shf...@mail.ru> wrote:
> > Michael, > Thank you for suggestions; > it seems to me that there's a fundamental lacuna with respect to names of a > three dimensional array: A lacuna in the English language, not in R: though perhaps Prof Ripley's employer's dictionary's editors could help us out ;-) [that might be the closest I've ever gotten to chained pointers in a natural language] > that is, rownames fits dimension 1, colnames fits another dimension(that is, > 3, if I read it correctly), > but there is no specific name for the third dimension. I've tried "setnames" > thinking that this would be appropriate > for naming the sets, but there is no such R function. > > On the other hand you're right, the suggestion > dimnames(data11a)[[2]]=c("V","R") > > doesn't ameliorate the analysis: while now dimnames(data11a)[[2]] > > comes out as > [2] > > returning to the original analysis the same error comes up, that is, that the > length of dimnames[2] doesn't agree with thee. I don't believe I made any prescriptions about length(dimnames[2]) so I have no idea what you mean here about it not agreeing with me. Also, there's almost no chance that's valid syntax: it should throw a 'closure not subsettable' error unless you over-wrote the name of a very important function (which you should not do). And I believe I told you that you want double brackets here. > 'array extent' -- that is, even though the boxcar contents are two in number, > it evaluates the analysis on the basis of the > dimnames(data11a)[2] value. No! Double brackets. > > I'm using colloc infer (available under R 2.14) and trying to do the > FHN(FitzHugh Nagumo) analysis in section 9.1 of the manual; it's very complex > work, but I doubt the program is in error. I'm travelling currently so I can't track this down (no wifi) but I'll try later. In the meanwhile, see Bill Dunlap's suggestions. > > It seems to me in any case that, if R demands that the length of 'dimnames[2] > must be equal to the array extent, then there must be a way to make the > length of the names equal to the extent of the array, am I right? Again -- your code ("dimnames[2]") looks like nonsense -- I think you've overwritten a function that you shouldn't have. > Otherwise R would be inconsistent with itself, like Nomad on Startrek, and > I've never seen a case where it was thus. Really? Never thought about the S3 naming conventions then.... > > This is again why I ask if others with extensive experience with dimnames of > an array have seen anything similar. > Certainly someone might know what is the significance of the dimnames of the > array, how much can the length of them be altered for use generally? Dimnames must have lengths which correspond to the dimensions of the underlying array -- that is dim(a) == sapply(dimnames(a) length) Nothing else really makes sense. The only way to change the lengths of the dimnames is to reshape the array. Michael > > regards, > A > Thu, 16 Aug 2012 00:00:35 -0400 Ð¾Ñ "R. Michael Weylandt" > <michael.weyla...@gmail.com>: > On Wed, Aug 15, 2012 at 3:57 AM, aleksandr shfets <a_shf...@mail.ru> wrote: > > Hi Michael, > > Thanks for help on double brackets: I wasn't aware of this use of them. > > > > I went back to readjust my array so the dimnames(data11a)[[2]] would have > > two elements, and remade the array to include the new dimnames: > > > > dimnames(data11a)[[2]]=c("V","R") > > > > so that inside the second car of the train would > > be two items? > > Yes. > > > > > There seems to be no way to define dimnames(data11a)[2] to be two elements > > rather than one[as you say we have no way to combine the elements of the > > train except using the train]. > > You could do this: > > dimnames(data11a)[2] <- list(c("V","R")) > > but I'm not sure that's any clearer. To keep the metaphor rolling (get > it!), list() puts your stuff in a boxcar so now you can put it > directly on the train. > > > So having tried to do what I can to make the > > middle element of the list to two rather than one, I rerun the analysis with > > the same result. > > > > if I read the thing right, regardless of how I define the "inside" of the > > boxcar, the analysis that I referred to > > > > res11a = inneropt(coefs, times=times, data=data11a, > > lik=lik, > > proc=proc, pars=spars, in.meth='nlminb', > > control.in=control.out) > > > > Where is this inneropt function from? It could be an error in that. If > it's from a package, give me the name and I'll take a look at it and > you can also contact the maintainer: get contact info using the > maintainer() function. > > Also, some of the advice here will probably be helpful in seeking follow-up: > > http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example > > Cheers, > Michael > > > still won't look at the 'contents' of the car, but gives the same message: > > > > Error in `colnames<-`(`*tmp*`, value = c("V", "R")) : > > length of 'dimnames' [2] not equal to array extent > > > > > > I've tried a couple of other things like, after defining the second boxcar > > as: > > > > dimnames(data11a)[[2]]=c("V","R") > > > > > > then > > > > > > dimnames(data11a)[2]=list(dimnames(data11a)[[2]]) > > > > > > but this last generates an error. > > > > Somehow I think that that the clue to the thing is in the error message: > > what I see[ with my untrained eye] is that there should be some way to > > reconcile the three-- colnames, dimnames and the array- to a greater degree > > than their present agreement. > > Am I right? > > regards, > > Russell > > > > Tue, 14 Aug 2012 01:27:50 -0400 Ð¾Ñ "R. Michael Weylandt" > > <michael.weyla...@gmail.com>: > > > > On Mon, Aug 13, 2012 at 5:10 AM, aleksandr russell <sss...@gmail.com> wrote: > >> Hello, > >> > >> I'm hoping someone with a wide experience with R may be able to see > >> what the program is trying to tell me. > >> > >> I've got an array: > >> > >> y1=rnorm(41,0.2) > >> y2=rnorm(41,0.2) > >> y3=rbind(y1,y2) > >> > >> > >> > >> data11<-array(0,c(41,2,2)) > >> data11[,1,]=y3 > >> data11[,2,]=y3 > >> rownames(data11)<-rownames(data11, do.NULL = FALSE, prefix = "Obs.") > >> colnames=c("V","R") > >> varnames=c("one","two") > >> dimnames(data11)<-list(rownames(data11), varnames, colnames) > >> > >> > >> > >> data11a<-as.array(data11, dimnames=dimnames(data11)) > > > > # No effect here > > identical(data11, data11a) # TRUE > > > >> > >> The analysis that I would like to do with R(CollocInfer) runs as > >> follows(I print for the sake of introduction here though to run this > >> line of code requires extensive setup) > >> > >> res11a = inneropt(coefs, times=times, data=data11a, lik=lik, > >> proc=proc, pars=spars, in.meth='nlminb', control.in=control.out) > >> > >> > >> > >> The response I get is > >> > >> Error in 'colnames<-'('*tmp*', value = c("V","R")) : > >> length of 'dimnames' [2] not equal to array extent > >> > >> > >> > >> It seems to me that there is a fundamental match of 'dimnames' with > >> the array that is being referred to. > >> > >> I have learned that the normal length of dimnames for an array is one > >> for each element in the list: thus as I've set up the array, the > >> length(dimnames(data11a)[2]) gives me > >> > >> [1] > > > > I believe you are looking for > > > > length(dimnames(data11a)[[2]]) # 2 > > > > Look into the difference between `[` and `[[` for subsetting a list. > > See ?Extract for the gorey details, but I like my little train > > metaphor: > > > > If the list "x", is a train: x[2] is the "sub-train" consisting only > > of the second car, while x[[2]] is the contents of that second car. > > Hence we can do x[1:3] to give a well defined train, but not x[[1:3]] > > because we have no way to combine the elements of the first three cars > > other than using a train. > > > > Cheers, > > Michael > > > >> > >> I would like to ask :Is it not evident from R's response that there is > >> some other possibility for the dimnames[2] of the array? > >> > >> If so, what is it? > >> > >> regards, > >> A > >> > >> ______________________________________________ > >> R-help@r-project.org mailing list > >> 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. > > > > > [[alternative HTML version deleted]]
______________________________________________ R-help@r-project.org mailing list 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.