[R] return NA

Jim Brennan jfbrennan at rogers.com
Wed Jun 29 22:53:57 CEST 2005


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 at stat.math.ethz.ch
[mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of
dscully at fd9ns01.okladot.state.ok.us
Sent: June 29, 2005 3:50 PM
To: r-help at 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 at stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide!
http://www.R-project.org/posting-guide.html




More information about the R-help mailing list