[R] OK, next Q - a sort of factorial on a vector
Ivan Krylov
kry|ov@r00t @end|ng |rom gm@||@com
Tue Jun 20 19:32:01 CEST 2023
В Wed, 21 Jun 2023 03:13:52 +1000
Philip Rhoades via R-help <r-help using 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)]))
(I'm sure it could be golfed further.)
> 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)].
--
Best regards,
Ivan
More information about the R-help
mailing list