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
dscully@fd9ns01.okladot.state.ok.us
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
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide!
http://www.R-project.org/posting-guide.html

R-help@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 Received on Thu Jun 30 06:58:53 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:33:07 EST