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.

Reply via email to