Well, I think this is reasonable elegant, but ymmv. Turning it into a function and removing NA values is left for you.
> x <- 1:5 > unlist(sapply(seq(1, length(x) - 1), function(i){x[i] * x[seq(i + 1, > length(x))]})) [1] 2 3 4 5 6 8 10 12 15 20 > > x <- c(1, 2, NA, 4, 5) > unlist(sapply(seq(1, length(x) - 1), function(i){x[i] * x[seq(i + 1, > length(x))]})) [1] 2 NA 4 5 NA 8 10 NA NA 20 Sarah On Tue, Jun 20, 2023 at 1:15 PM Philip Rhoades via R-help <r-help@r-project.org> wrote: > > People, > > What I mean is, is there an elegant way to do this: > > This: > > !(1,2,3,4,5) > > would give this: > > (2,3,4,5, 6,8,10, 12,15, 20) > > and this: > > !(1,2,NA,4,5) > > would give this: > > (2,4,5, 8,10, 20) > > ? > > Thanks! > > Phil. > -- > Philip Rhoades > > PO Box 896 > Cowra NSW 2794 > Australia > E-mail: p...@pricom.com.au > > ______________________________________________ > 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. -- Sarah Goslee (she/her) http://www.numberwright.com ______________________________________________ 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.