[R] Question regarding to replace <NA>

Phil Spector spector at stat.berkeley.edu
Tue Nov 9 18:42:28 CET 2010


Kate -
    As the error message indicates, num.strata is a 
factor.  This can occur when you're reading in data
and R encounters a non-numeric value which was not
specified in the na.strings= argument to read.table. 
To do what you want, you'll need to convert it to a 
character variable first:

> myvar = factor(c(NA,NA,NA,'1'))
> myvar[is.na(myvar)] = 0
Warning message:
In `[<-.factor`(`*tmp*`, is.na(myvar), value = 0) :
   invalid factor level, NAs generated
> myvar = as.character(myvar)
> myvar[is.na(myvar)] = 0
> myvar
[1] "0" "0" "0" "1"

If you want the variable to be treated as a numeric 
variable, you can use as.numeric:

> as.numeric(myvar)
[1] 0 0 0 1

Hope this helps.
 					- Phil Spector
 					 Statistical Computing Facility
 					 Department of Statistics
 					 UC Berkeley
 					 spector at stat.berkeley.edu




On Tue, 9 Nov 2010, Kate Hsu wrote:

> Dear r-users,
>
> Basically, I have a data as follows,
>
>> data
>       S s1 s2 s3 s4 s5      prob obs num.strata
> 1  NNNNN  N  N  N  N  N 0.0000108  32       <NA>
> 2  NNNNY  N  N  N  N  Y 0.0005292  16       <NA>
> 3  NNNYN  N  N  N  Y  N 0.0005292  24       <NA>
> 4  NNNYY  N  N  N  Y  Y 0.0259308   8          1
> ....
>
> I want to replace <NA> by 0, when I tried the following command, I get som
> error message.
> data[is.na(data)]<-0
>
> Warning message:
> In `[<-.factor`(`*tmp*`, thisvar, value = 0) :
>  invalid factor level, NAs generated
>
> Anyone knows how to deal with this?
>
> Thanks,
>
> Kate
>
> 	[[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.
>



More information about the R-help mailing list