[R] replacing NA's with 0 in a dataframe for specified columns
Chuck Cleland
ccleland at optonline.net
Wed Sep 15 21:12:26 CEST 2004
mydata <- data.frame(a = c(0,1,2,NA), b = c(0,NA,1,2), c = c(NA, 0, 1, 2))
mydata
a b c
1 0 0 NA
2 1 NA 0
3 2 1 1
4 NA 2 2
mydata[,c("a", "c")] <-
apply(mydata[,c("a","c")], 2, function(x){replace(x, is.na(x), 0)})
mydata
a b c
1 0 0 0
2 1 NA 0
3 2 1 1
4 0 2 2
David Kane wrote:
> I know that there must be a cool way of doing this, but I can't think
> of it. Let's say I have an dataframe with NA's.
>
>
>>x <- data.frame(a = c(0,1,2,NA), b = c(0,NA,1,2), c = c(NA, 0, 1, 2))
>>x
>
> a b c
> 1 0 0 NA
> 2 1 NA 0
> 3 2 1 1
> 4 NA 2 2
>
>
> I know it is easy to replace all the NA's with zeroes.
>
>
>>x[is.na(x)] <- 0
>>x
>
> a b c
> 1 0 0 0
> 2 1 0 0
> 3 2 1 1
> 4 0 2 2
>
>
> But how do I do this for just columns a and c, leaving the NA in
> column b alone?
>
> Thanks,
>
> Dave Kane
>
>
>>R.version
>
> _
> platform i686-pc-linux-gnu
> arch i686
> os linux-gnu
> system i686, linux-gnu
> status
> major 1
> minor 9.1
> year 2004
> month 06
> day 21
> language R
>
>
> ______________________________________________
> 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
>
--
Chuck Cleland, Ph.D.
NDRI, Inc.
71 West 23rd Street, 8th floor
New York, NY 10010
tel: (212) 845-4495 (Tu, Th)
tel: (732) 452-1424 (M, W, F)
fax: (917) 438-0894
More information about the R-help
mailing list