# Re: [R] return NA

From: Jim Brennan <jfbrennan_at_rogers.com>
Date: Thu 30 Jun 2005 - 06:53:57 EST

Here is a way to do it without a loop that could save some time for a big dataset.
> df1

A B C D
[1,] 1 3 6 8
[2,] 2 4 5 7
[3,] NA 1 6 4
[4,] 7 4 NA 6
[5,] 5 1 9 2

> df2<-cbind(0,ifelse(is.na(df1),NA,0))[,-ncol(df1)-1] > df2

A B C
[1,] 0 0 0 0
[2,] 0 0 0 0
[3,] 0 NA 0 0
[4,] 0 0 0 NA
[5,] 0 0 0 0
> df3<-df1+df2
> df3

A B C D
[1,] 1 3 6 8
[2,] 2 4 5 7
[3,] NA NA 6 4
[4,] 7 4 NA NA
[5,] 5 1 9 2

-----Original Message-----
From: r-help-bounces@stat.math.ethz.ch
[mailto:r-help-bounces@stat.math.ethz.ch] On Behalf Of
Sent: June 29, 2005 3:50 PM
To: r-help@stat.math.ethz.ch
Subject: [R] return NA

```A<-c(1,2,NA,7,5)
B<-c(3,4,1,4,1)
C<-c(6,5,6,NA,9)
D<-c(8,7,4,6,2)
df1<-cbind(A,B,C,D)
```

for(i in seq(1,ncol(df1)-1, by=2)) {

ifelse(df1[,i]=="NA",df1[,i+1]=="NA",df1[,] ) }

Tried several variations but none worked. I wish to find any NA's in column's 1 or 3 and change the numerical value to the right of the " NA"'s . In this case I wish to replace the 1 and 6 respectively with "NA". Any help would be appreciated.

R-help@stat.math.ethz.ch mailing list