I wondered too. I suppose one interpretation is, No, it's not just not

be that 2. is OK as written, but there needs to be entries for the

nonnegative/nonpositive cases. Or - perish the thought - that Brian

> That's what I was trying to say: the whole truth is that numeric index

> vectors that contain positive integral quantities can also contain

> zeros. Upon rereading this passage yet again, I think it is more

> misleading than merely incomplete: the phrasings "positive integral

> quantities", and "*must* lie in the set ..." rule out the possibility of

> the vector containing zeros.

>

> In this Section 2.7 in "An Introduction to R", the four types of index

> vectors are introduced with "Such index vectors can be any of four

> distinct types:". There is not even a hint that other types of index

> vectors can be used (e.g., positive integral quantities and zeros). Is

> this really correct and helpful? (The only way that I can see that this

> section can be interpreted as correct is to claim that that the phrasing

> "can be any of four distinct types" permits the existence of other types

> that are neither described nor hinted at. However, this interpretation

> feels more clever than helpful.)

>

> Tony Plate

>

> Prof Brian Ripley wrote:

> > ?"[" says

> >

> > See Also:

> >

> > 'list', 'array', 'matrix'.

> >

> > '[.data.frame' and '[.factor' for the behaviour when applied to

> > data.frame and factors.

> >

> > 'Syntax' for operator precedence, and the _R Language_ reference

> > manual about indexing details.

> >

> > and the `indexing details' are indeed where it says they are.

> >

> > This is not an introductory topic, and it makes sense to have the

> > details in only one place and refer to it. That help page is already

> > over-loaded.

> >

> >

> > On Tue, 13 Dec 2005, Tony Plate wrote:

> >

> >> Yes, 0/1 (numeric) are intended to be used as index vectors -- and they

> >> have the semantics of numeric indices, which is that 0 elements in the

> >> index are omitted from the result. This can be a very useful mode of

> >> operation in many situations.

> >>

> >> I was going to write "This is described in both the introduction to R,

> >> and in the documentation for '['", except that I checked before I wrote

> >> and was surprised to be unable to any discussion of zeros in indexing in

> >> any of the first three places I looked:

> >>

> >> (1) help page for '[' (There is discussion of zero indices here, but

> >> only in the context of using matrices to index matrices, not in the

> >> context of ordinary vector indices).

> >>

> >> (2) Section 2.7 "Index vectors: selecting and modifying subsets of a

> >> data set" in "An Introduction to R", which does say this about numeric

> >> indices:

> >> 2. A vector of positive integral quantities. In

> >> this case the values in the index vector must

> >> lie in the set {1, 2, . . . , length(x)}

> >> (This seems to commit the sin of not telling the whole truth.)

> >

> >

> > No. Zero is not a positive integer.

> >

> >> (3) Section 5.5 "Array Indexing. Subsections of an array" (In "An

> >> Introduction to R")

> >>

> >> Question for others: did I miss something obvious, or is this a

> >> documentation deficiency that zeros in indices are not discussed in 3 of

> >> some obvious first places to look?

> >>

> >> If indeed this is a documentation deficiency, I'm happy to contribute

> >> documentation patch, but I await other opinions before spending any time

> >> on that.

> >>

> >> -- Tony Plate

> >>

> >>

[hidden email] wrote:

> >>

> >>> Full_Name: Axel Rasche

> >>> Version: 2.2.0

> >>> OS: Linux

> >>> Submission from: (NULL) (141.14.21.81)

> >>>

> >>>

> >>> Dear Debuggers,

> >>>

> >>> This is not a serious problem. Are 0/1 vectors intended to be used as

> >>> index

> >>> vectors? If yes, there is a bug. If not, it leads just to some funny

> >>> behaviour

> >>> rather than an error message.

> >>>

> >>> In the appendix is some simple code to reproduce the problem. A

> >>> logical vector

> >>> as.logic(a) helps by indexing the vector b. The 0/1 vector a just

> >>> returns the

> >>> first value "a". But as many times as there is a 1 in a.

> >>>

> >>> Best regards,

> >>> Axel

> >>>

> >>>

> >>> Appendix:

> >>>

> >>> b = c("a","b","c","d")

> >>> a = c(0,1,1,0)

> >>> b[as.logical(a)]

> >>> b[a]

> >>> a = c(1,0,1,0)

> >>> b[as.logical(a)]

> >>> b[a]

> >>> a = c(0,1,1,1)

> >>> b[as.logical(a)]

> >>> b[a]

> >>>

> >>> ______________________________________________

> >>>

[hidden email] mailing list

> >>>

https://stat.ethz.ch/mailman/listinfo/r-devel> >>>

> >>

> >> ______________________________________________

> >>

[hidden email] mailing list

> >>

https://stat.ethz.ch/mailman/listinfo/r-devel> >>

> >>

> >

>

> ______________________________________________

>

[hidden email] mailing list

>

https://stat.ethz.ch/mailman/listinfo/r-devel>

c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K