Skip to content

Adding across columns ignoring NA

4 messages · Jin Choi, arun, Berend Hasselman +1 more

#
HI,
?sum(var1,var2,var3,var4,var5,na.rm=TRUE)
#[1] 8
A.K.




----- Original Message -----
From: Jin Choi <oohpsjin at gmail.com>
To: "r-help at r-project.org" <r-help at r-project.org>
Cc: 
Sent: Saturday, July 20, 2013 12:37 AM
Subject: [R] Adding across columns ignoring NA

I am having difficulty finding a solution to devising an R code to do the
following:

I have 5 numerical variables and I would like to create a new variable that
is the sum of those 5 variables. However, there are many NA values
throughout these 5 variables and everytime I run the following code

new_variable=var1+var2+var3+var4+var5

I get NA as the sum whenever one of those 5 variables are NA. I cannot
figure out a way to have new_variable represent the sum for only those
values that are not NA.

As an example,
if var1=3
var2=3
var3=NA
var4=NA
var5=2

I would like new_variable to be 8 but I keep getting NA and I have
unsuccessfully tried different methods to do so. I feel there is a simple
method to solve my problem but I am unaware of such. I would appreciate any
guidance!

Thank you
JC

??? [[alternative HTML version deleted]]

______________________________________________
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.
#
On 20-07-2013, at 06:37, Jin Choi <oohpsjin at gmail.com> wrote:

            
?sum

Have a look at the na.rm argument of sum.

Berend
#
Berend:

No. The OP's "variables" appear to be vectors. sum() sums columnwise
(vectorwise).

Something like

rowSums(cbind(var1,var2,var3,var4,var6), na.rm=TRUE)

appears to be what is wanted. But of course,Jin Choi appears to need
to do some homework -- e.g. by reading the Introduction to R online
manual to gain a better understanding of R's standard data structures.

Cheers,
Bert
On Fri, Jul 19, 2013 at 10:06 PM, Berend Hasselman <bhh at xs4all.nl> wrote: