"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 <rao...@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 <hwborch...@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@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@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@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.