[R] Summing list with NA elements

Dimitris Rizopoulos d.rizopoulos at erasmusmc.nl
Fri May 4 11:40:16 CEST 2012


one solution is to set NAs to 0, e.g.,

m <- matrix(1:3, 3, 3)
x <- list(m, m+3, m+6)
x[[1]][1] <- NA

x. <- lapply(x, function (x) {x[is.na(x)] <- 0; x} )
Reduce("+", x.)


I hope it helps.

Best,
Dimitris


On 5/4/2012 11:19 AM, Evgenia wrote:
> I have a list ( in my real problem  a double list y[[1:24]][[1:15]] but I
> think the solution would be the same)
>
> m<- matrix(1:3, 3, 3)
> x<- list(m, m+3, m+6)
>   and as I want to have the sum of elements I use Reduce(`+`, x)
> having as result
>
>> Reduce(`+`, x)
>       [,1] [,2] [,3]
> [1,]   12   12   12
> [2,]   15   15   15
> [3,]   18   18   18
>
> How can I take the sum of the list elements ignoring NA element
> For example if I have
> x[[1]][1]<-NA
>
> Then I want to have
>       [,1] [,2] [,3]
> [1,]  11   12   12
> [2,]   15   15   15
> [3,]   18   18   18
>
> instead of
>
>> Reduce(`+`, x)
>       [,1] [,2] [,3]
> [1,]   NA   12   12
> [2,]   15   15   15
> [3,]   18   18   18
>
> Thanks in advance
>
> Evgenia
>
>
>
> --
> View this message in context: http://r.789695.n4.nabble.com/Summing-list-with-NA-elements-tp4608167.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at r-project.org mailing list
> 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.
>

-- 
Dimitris Rizopoulos
Assistant Professor
Department of Biostatistics
Erasmus University Medical Center

Address: PO Box 2040, 3000 CA Rotterdam, the Netherlands
Tel: +31/(0)10/7043478
Fax: +31/(0)10/7043014
Web: http://www.erasmusmc.nl/biostatistiek/



More information about the R-help mailing list