It's simpler, easier, and more correct to use zoo::na.approx. R> library(zoo) R> dat1<-read.table(text= + " date value + 80 2006-10 0.1577647 + 81 2006-11 NaN + 82 2006-12 NaN + 83 2007-01 NaN + 84 2007-02 NaN + 85 2007-03 0.2956429", + header=TRUE,stringsAsFactors=FALSE) R> dat1$valnew <- na.approx(dat1$value, as.yearmon(dat1$date)) R> dat1 date value valnew 80 2006-10 0.1577647 0.1577647 81 2006-11 NaN 0.1853403 82 2006-12 NaN 0.2129160 83 2007-01 NaN 0.2404916 84 2007-02 NaN 0.2680673 85 2007-03 0.2956429 0.2956429
Best, -- Joshua Ulrich | about.me/joshuaulrich FOSS Trading | www.fosstrading.com On Fri, Nov 30, 2012 at 11:28 AM, arun <smartpink...@yahoo.com> wrote: > Hi, > May be this helps: > dat1<-read.table(text=" > -------------------data--- > ",header=TRUE,stringsAsFactors=FALSE) > > library(zoo) > dat1$date<-as.yearmon(dat1$date,format="%Y-%m") > lm1<-lm(value~date,dat1) > dat2<-data.frame(date=dat1[,1]) > dat1$fit<-predict(lm1,newdata=dat2) > dat1<-within(dat1,{newvalue<-ifelse(is.na(value)==T,fit,value)}) > dat1new<-dat1[,c(1:2,4)] > dat1new[80:86,] > # date value newvalue > #80 Oct 2006 0.1577647 0.1577647 > #81 Nov 2006 NaN 0.2782320 > #82 Dec 2006 NaN 0.2773986 > #83 Jan 2007 NaN 0.2765651 > #84 Feb 2007 NaN 0.2757317 > #85 Mar 2007 0.2956429 0.2956429 > #86 Apr 2007 0.3767500 0.3767500 > A.K. > > > > > ----- Original Message ----- > From: Vasilchenko Aleksander <vasilchenko....@gmail.com> > To: arun <smartpink...@yahoo.com> > Cc: > Sent: Friday, November 30, 2012 8:22 AM > Subject: Re: [R] missed values > > date value <snip> > 80 2006-10 0.1577647 > 81 2006-11 NaN > 82 2006-12 NaN > 83 2007-01 NaN > 84 2007-02 NaN > 85 2007-03 0.2956429 <snip> > > I want to obtain these values by linear interpolation between 80 > 2006-10 0.1577647 and 85 2007-03 0.2956429 > 81 2006-11 NaN > 82 2006-12 NaN > 83 2007-01 NaN > 84 2007-02 NaN > > This time series has only one such block, but there can be several > such blocks in general > > thanks > > > ______________________________________________ > R-help@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. ______________________________________________ R-help@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.