[R-es] Función para hacer productos de dos listas (sin NA)
r-help-es en mmmmarascio.xyz
r-help-es en mmmmarascio.xyz
Lun Abr 20 19:04:07 CEST 2015
> Date: Sun, 19 Apr 2015 10:27:02 +0200
> From: Gemma Ruiz-Olalla <gemma.ruizolalla en gmail.com>
> To: r-help-es en r-project.org
> Subject: [R-es] Función para hacer productos de dos listas (sin NA)
> Message-ID:
> <CAALuvnX_EaPAJ2xN2efAcYwSbUwUVyFYp4oJV5FgRM9YoEM8Vg en mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> Buenos días,
>
> Necesitamos encontrar una función que haga el producto (valor por valor) de
> dos listas, pero que nos permita no tener en cuenta los NA. Por ejemplo,
> igual que sum() permite añadir como parámetro el na.rm=T, la función que
> buscamos nos debería permitir también añadir este parámetro. Hemos
> encontrado el prod() pero sólo nos da un único valor y necesitamos el
> producto de cada valor de la lista por la otra (necesitamos una lista de
> valores resultantes).
>
> ¿Alguien nos puede ayudar?
Multiplicar un número por NA devuelve NA, sin error.
(lista.1 <- list(1:10, 10:1, rep(c(NA, 1:5), 25)))
(lista.2 <- list(10:1, 1:10, 2))
mapply(`*`, lista.1, lista.2)
Esto conlleva un aviso si las listas mismas no son igual de largas.
(lista.1[[length(lista.1) + 1]] <- rnorm(100))
mapply(`*`, lista.1, lista.2)
Espero que le sirva de algo.
> Muchas gracias,
>
> Gemma
>
Más información sobre la lista de distribución R-help-es