Is this what you want?
 > yr<-c(rep(2000,14))
> doy<-c(16:29)
> dat<-c(3.2,NA,NA,NA,NA,NA,NA,5.1,NA,NA,NA,NA,NA,4.6)
> ta<-cbind(yr,doy,dat)
> ta
yr doy dat
[1,] 2000 16 3.2
[2,] 2000 17 NA
[3,] 2000 18 NA
[4,] 2000 19 NA
[5,] 2000 20 NA
[6,] 2000 21 NA
[7,] 2000 22 NA
[8,] 2000 23 5.1
[9,] 2000 24 NA
[10,] 2000 25 NA
[11,] 2000 26 NA
[12,] 2000 27 NA
[13,] 2000 28 NA
[14,] 2000 29 4.6
> good <- !is.na(ta[,'dat'])
> x.f <- approxfun(ta[good,'doy'], ta[good,'dat'], rule=2)
> ta[!good, 'dat'] <- x.f(ta[!good, 'doy'])
> ta
yr doy dat
[1,] 2000 16 3.200000
[2,] 2000 17 3.471429
[3,] 2000 18 3.742857
[4,] 2000 19 4.014286
[5,] 2000 20 4.285714
[6,] 2000 21 4.557143
[7,] 2000 22 4.828571
[8,] 2000 23 5.100000
[9,] 2000 24 5.016667
[10,] 2000 25 4.933333
[11,] 2000 26 4.850000
[12,] 2000 27 4.766667
[13,] 2000 28 4.683333
[14,] 2000 29 4.600000
>


 On 10/6/05, Anette Nørgaard <anette@geoplus.dk> wrote:
>
> Can anybody help me write a code on the following data example, which
> fills out all NA values by using a linear interpolation with the two
> closest values?
>
> Doy is day of year (%j).
>
> Code example:
> yr<-c(rep(2000,14))
> doy<-c(16:29)
> dat<-c(3.2,NA,NA,NA,NA,NA,NA,5.1,NA,NA,NA,NA,NA,4.6)
> ta<-cbind(yr,doy,dat)
>
> ta
> yr doy dat
> [1,] 2000 16 3.2
> [2,] 2000 17 NA
> [3,] 2000 18 NA
> [4,] 2000 19 NA
> [5,] 2000 20 NA
> [6,] 2000 21 NA
> [7,] 2000 22 NA
> [8,] 2000 23 5.1
> [9,] 2000 24 NA
> [10,] 2000 25 NA
> [11,] 2000 26 NA
> [12,] 2000 27 NA
> [13,] 2000 28 NA
> [14,] 2000 29 4.6
>
> Anette Norgaard
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> 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
>



--
Jim Holtman
Cincinnati, OH
+1 513 247 0281

What the problem you are trying to solve?

	[[alternative HTML version deleted]]


