[R] Summing up columns with NA elements in a data frame

Henrique Dallazuanna wwwhsd at gmail.com
Tue Sep 23 17:45:12 CEST 2008


Try this:

a$a4 <- rowSums(a, na.rm = T)

On Tue, Sep 23, 2008 at 12:20 PM, ravi <rv15i at yahoo.se> wrote:
> Hi all,
> When I try to sum a few columns in a data frame (which has NA's randomly distributed as elements), I am not able to get the summing operation to ignore the NA's.
> Let me explain with the following code :
> ################################
> a<-structure(list(a1 = c(NA, 2, 3, NA, 5, 6, NA, 8, 9, NA), a2 = c(NA,
> + 4, 5, 5, NA, 7, 8, 8, NA, 10), a3 = c(2, NA, 6, 8, NA, 12, 14,
> + NA, 18, 20)), .Names = c("a1", "a2", "a3"), row.names = c(NA,
> + -10L), class = "data.frame")
> print(a)
> a$a4<-a$a1+a$a2+a$a3 #method 1
> print(a)
> b<-apply(a,1,sum) #method 2
> print(b)
> d<-apply(a,1,FUN=function(x) (sum(x),na.rm=T)) # not the right syntax, apparently - method 3
> print(d)
> ######################################
> I would like to know how to make the na.rm=T to work, or any other solution.
> I am also mystified by the following result :
>  ####################################
> attach(a)
> a$a4<-a1+a2+a3 # method 4
> detach(a)
> print(a)
> #############################
> Now, the row numbers (why?) seem to get added - sometimes.
> There are some things that I am missing here. Will appreciate all help in understanding the issues here.
> Thanking You,
> Ravi
>
> ______________________________________________
> 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.
>



-- 
Henrique Dallazuanna
Curitiba-Paraná-Brasil
25° 25' 40" S 49° 16' 22" O



More information about the R-help mailing list