[R] x[0]: Can '0' be made an allowed index in R?

Bert Gunter bgunter@4567 @end|ng |rom gm@||@com
Wed Apr 24 03:20:15 CEST 2024


"This works with any single-index value, and lets all the existing
operations for such values continue to work."

As Peter Dalgaard already pointed out, that is false.

> x <- 1:4
> x[-1]
[1] 2 3 4
> elt(x,-0)
[1] 1

Cheers,
Bert

On Tue, Apr 23, 2024 at 4:55 PM Richard O'Keefe <raoknz using gmail.com> wrote:
>
> Does it have to use square bracket syntax?
> elt <- function (x, i) x[i+1]
> "elt<-" <- function (x, i, value) { x[i+1] <- value; x }
>
> > u <- c("A","B","C")
> > elt(u,0)
> [1] "A"
> > elt(u,length(u)-1)
> [1] "C"
> > elt(u,0) <- "Z"
> > u
> [1] "Z" "B" "C"
>
> This works with any single-index value, and lets all the existing
> operations for such values continue to work.  It seems to me to be the
> simplest and cleanest way to do things, and has the advantage of
> highlighting to a human reader that this is NOT normal R indexing.
>
> On Sun, 21 Apr 2024 at 19:56, Hans W <hwborchers using gmail.com> wrote:
> >
> > As we all know, in R indices for vectors start with 1, i.e, x[0] is not a
> > correct expression. Some algorithms, e.g. in graph theory or combinatorics,
> > are much easier to formulate and code if 0 is an allowed index pointing to
> > the first element of the vector.
> >
> > Some programming languages, for instance Julia (where the index for normal
> > vectors also starts with 1), provide libraries/packages that allow the user
> > to define an index range for its vectors, say 0:9 or 10:20 or even negative
> > indices.
> >
> > Of course, this notation would only be feasible for certain specially
> > defined vectors. Is there a library that provides this functionality?
> > Or is there a simple trick to do this in R? The expression 'x[0]' must
> > be possible, does this mean the syntax of R has to be twisted somehow?
> >
> > Thanks, Hans W.
> >
> >         [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > R-help using 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.
>
> ______________________________________________
> R-help using 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.



More information about the R-help mailing list