Ivan,
On 2023-06-21 03:32, Ivan Krylov wrote:
В Wed, 21 Jun 2023 03:13:52 +1000
Philip Rhoades via R-help <r-help@r-project.org> пишет:
This:
!(1,2,3,4,5)
would give this:
(2,3,4,5, 6,8,10, 12,15, 20)
Do you mean taking a product of every element of the vector with all
following vector elements? A relatively straightforward way would be
(given your vector stored in `x`):
unlist(lapply(seq_along(x), function(i) x[i] * x[-(1:i)]))
Perfect!
(I'm sure it could be golfed further.)
I will look at Sarah's suggestion too.
and this:
!(1,2,NA,4,5)
would give this:
(2,4,5, 8,10, 20)
The previous solution seems to give your vector interspersed a bunch of
NAs, so one way to continue would be to filter it using v[!is.na(v)].
Exactly!
Thanks people - it would have taken forever to work that out myself (it
has been decades since I looked at R).
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.