[R] Fill in NA values in vector with previous character/factor

Bert Gunter gunter.berton at gene.com
Mon Jul 28 22:05:26 CEST 2008


Just for the record, a less efficient but certainly simple and maybe
adequate way for you to do it in standard R (no zoo package required) is:

for(i in seq_along(x)[-1])if(is.na(x[i])) x[i] <- x[i-1]

I tried timing it on my not so fancy Windows desktop for a vector of 10,000
values, but it was instantaneous.

Loops may be relatively inefficient in R, but how relatively inefficient is
... well, ... relative. (If you didn't have zoo installed, how long does it
take to install? -- perhaps a red herring, but ...)

Cheers,

Bert Gunter
Genentech 

-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On
Behalf Of Dimitris Rizopoulos
Sent: Monday, July 28, 2008 12:26 PM
To: Owen Jones
Cc: r-help at r-project.org
Subject: Re: [R] Fill in NA values in vector with previous character/factor

try function na.locf() from package 'zoo', i.e.,

library(zoo)
x <- c("A","B",NA,NA,"C",NA,NA,NA,NA,"D",NA,NA)
na.locf(x)


I hope it helps.

Best,
Dimitris


----
Dimitris Rizopoulos
Biostatistical Centre
School of Public Health
Catholic University of Leuven

Address: Kapucijnenvoer 35, Leuven, Belgium
Tel: +32/(0)16/336899
Fax: +32/(0)16/337015
Web: http://med.kuleuven.be/biostat/
      http://perswww.kuleuven.be/dimitris_rizopoulos/


Quoting Owen Jones <owen.jones at imperial.ac.uk>:

> I have a vector of data (species names) interspersed with NA values and
> I want a function to "fill in the blanks", replacing NA values with
> whatever the last species name was.
>
> For example the vector:
>
>  "A","B",NA,NA,"C",NA,NA,NA,NA,"D",NA,NA.
>
> should evaluate to:
>
> "A" "B" "B" "B" "C" "C" "C" "C" "C" "D" "D" "D"
>
>
> I tried to use rle() in a function to do this but have hit a brick wall.
>
> How would YOU do this?
>
> Many thanks,
>
> Owen
>
> ______________________________________________
> 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.



Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm

______________________________________________
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