[R] function approx interpolation of time series data sets

e-letter inpost at gmail.com
Fri Jan 18 14:51:07 CET 2013


On 18/01/2013, Gabor Grothendieck <ggrothendieck at gmail.com> wrote:
> On Fri, Jan 18, 2013 at 7:31 AM, e-letter <inpost at gmail.com> wrote:
>> On 16/01/2013, Rui Barradas <ruipbarradas at sapo.pt> wrote:
>>> Hello,
>>>
>>> Like this?
>>>
>>>
>>> data1 <- read.table(text = "
>>> 01:23:40 5
>>> 01:23:45 10
>>> 01:23:50 12
>>> 01:23:55 7
>>> ")
>>>
>>> data2 <- read.table(text = "
>>> 01:23:42
>>> 01:23:47
>>> 01:23:51
>>> 01:23:54
>>> ")
>>>
>>> approx(as.POSIXct(data1$V1, format = "%H:%M:%S"), y = data1$V2, xout =
>>> as.POSIXct(data2$V1, format = "%H:%M:%S"))
>>>
>>
>> Thanks. I have later realised that if data frames are unequal (i.e.
>> data2edit
>>
>> 01:23:42
>> 01:23:47
>> 01:23:51
>> 01:23:54
>> 01:23:58
>> 01:23:59
>>
>> the result for 'y' is
>>
>> $y
>> [1] NA NA NA NA NA NA
>>
>> Similar error occurs with the 'zoo' package.
>
>
> its not clear precisely what you tried with zoo but have a look at this:
>
>> data1 <- "
> +  01:23:40 5
> +  01:23:45 10
> +  01:23:50 12
> +  01:23:55 7"
>>
>> data2 <- "
> +  01:23:42
> +  01:23:47
> +  01:23:51
> +  01:23:54"
>>
>> library(zoo)
>> library(chron)
>> z1 <- read.zoo(text = data1, FUN = times)
>> z2 <- read.zoo(text = data2, FUN = times)
>> na.approx(z1, xout = time(z2))
> 01:23:42 01:23:47 01:23:51 01:23:54
>      7.0     10.8     11.0      8.0
>

Latest error:

> data1
        V1 V2
1 01:23:40  5
2 01:23:45 10
3 01:23:50 12
4 01:23:55  7

> data2
        V1
1 01:23:42
2 01:23:47
3 01:23:51
4 01:23:54
5 01:23:58
6 01:23:59

> data1zoo<-read.zoo(text=data1,FUN=times)
Error in textConnection(text) : invalid 'text' argument

> data2zoo<-read.zoo(text=data2,FUN=times)
Error in textConnection(text) : invalid 'text' argument

Then I tried to create objects differently:

data1zoo<-read.zoo('test1.txt',FUN=times)
> data1zoo
01:23:40 01:23:45 01:23:50 01:23:55
       5       10       12        7

data2zoo<-read.zoo('test2.txt',FUN=times)
> data2zoo

01:23:42
01:23:47
01:23:51
01:23:54
01:23:58
01:23:59

> data3<-(na.approx(merge(data1zoo,data2zoo),time(data1zoo)))
Error in na.approx.default(object, x = x, xout = xout, na.rm = FALSE,  :
  x and index must have the same length



More information about the R-help mailing list