"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 at 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 at 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 at 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 at 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.