On Fri, 15 Oct 2010, Megh Dal wrote:

Hi Gabor, please see the attached files which is in text format. I have opened them on excel then, used clipboard to load them into R. Still really unclear what to do.

I've read both files using read.zoo():

R> z1 <- read.zoo("dat1.txt", sep = ",", header = TRUE,
+    format = "%m/%d/%Y %H:%M:%S", tz = "")
Warning message:
In zoo(rval3, ix) :
some methods for "zoo" objects do not work if the index entries in 'order.by' are not unique
R> z2 <- read.zoo("dat2.txt", sep = ",", header = TRUE,
+    format = "%m/%d/%Y %H:%M:%S", tz = "")


Then, merge() does not work because some time indexes are not unique (and it would be unclear how these should be matched):

R> merge(z1, z2)
Error in merge.zoo(z1, z2) :
  series cannot be merged with non-unique index entries in a series

However, you can remove the duplicated, e.g., by computing averages:

R> z1a <- aggregate(z1, time(z1), mean)

Then

R> merge(z1a, z2)

works.

Also can you please elaborate this term "index = list(1, 2), FUN = function(d, t) as.POSIXct(paste(d, t))" in your previous file? In help, it is given that:"If FUN is specified then read.zoo calls FUN with the index as the first argument". I really could not connect your syntax with help.

The way Gabor read the data, the index was in two separate columns (columns 1 and 2). Hence, he specified
  index = list(1, 2)
and then provided a function that would return a POSIXct object when called with two arguments
  FUN(column1, column2)

hth,
Z

--- On Sat, 10/16/10, Gabor Grothendieck <ggrothendi...@gmail.com> wrote:

From: Gabor Grothendieck <ggrothendi...@gmail.com>
Subject: Re: [R] Problem with merging two zoo objects
To: "Megh Dal" <megh700...@yahoo.com>
Cc: r-h...@stat.math.ethz.ch
Date: Saturday, October 16, 2010, 12:11 AM
On Fri, Oct 15, 2010 at 2:20 PM, Megh
Dal <megh700...@yahoo.com>
wrote:
> Dear all, I have following 2 zoo objects. However when
I try to merge those 2 objects into one, nothing is coming
as intended. Please see below the objects as well as the
merged object:
>
>
>> dat11
>                      V2   V3   V4   V5
> 2010-10-15 13:43:54 73.8 73.8 73.8 73.8
> 2010-10-15 13:44:15 73.8 73.8 73.8 73.8
> 2010-10-15 13:45:51 73.8 73.8 73.8 73.8
> 2010-10-15 13:46:21 73.8 73.8 73.8 73.8
> 2010-10-15 13:47:27 73.8 73.8 73.8 73.8
> 2010-10-15 13:47:54 73.8 73.8 73.8 73.8
> 2010-10-15 13:49:51 73.7 73.7 73.7 73.7
>> dat22
>                      V2   V3   V4   V5
> 2010-10-15 12:09:12 74.0 74.0 74.0 74.0
> 2010-10-15 12:09:33 73.9 73.9 73.9 73.9
> 2010-10-15 12:20:36 74.0 74.0 74.0 74.0
> 2010-10-15 12:30:36 74.0 74.0 74.0 74.0
> 2010-10-15 12:41:03 73.7 73.7 73.7 73.7
>> merge(dat11, dat22)
>                    V2.dat11 V3.dat11
V4.dat11 V5.dat11 V2.dat22 V3.dat22 V4.dat22 V5.dat22
> 2010-10-15 12:09:12       NA       NA      
NA       NA       NA       NA       NA      
NA
> 2010-10-15 12:09:33       NA       NA      
NA       NA       NA       NA       NA      
NA
> 2010-10-15 13:43:54       NA       NA      
NA       NA       NA       NA       NA      
NA
> 2010-10-15 13:44:15       NA       NA      
NA       NA       NA       NA       NA      
NA
> 2010-10-15 13:45:51       NA       NA      
NA       NA       NA       NA       NA      
NA
> 2010-10-15 13:46:21       NA       NA      
NA       NA       NA       NA       NA      
NA
> 2010-10-15 13:47:27       NA       NA      
NA       NA       NA       NA       NA      
NA
> 2010-10-15 13:47:54       NA       NA      
NA       NA       NA       NA       NA      
NA
> 2010-10-15 13:49:51       NA       NA      
NA       NA       NA       NA       NA      
NA
> Warning messages:
> 1: In MATCH(x, x) == seq_len(length(x)) :
>  longer object length is not a multiple of shorter
object length
> 2: In MATCH(x, x) == seq_len(length(x)) :
>  longer object length is not a multiple of shorter
object length
>
> If somebody points me whether I went wrong, it would
be really great.
>

If I try it then it works properly so there is likely
something wrong
with your dat11 and dat22 objects.  If you provide the
problem
reproducibly one might be able to say more.

> Lines1 <- "Date Time
V2   V3   V4   V5
+ 2010-10-15 13:43:54 73.8 73.8 73.8 73.8
+ 2010-10-15 13:44:15 73.8 73.8 73.8 73.8
+ 2010-10-15 13:45:51 73.8 73.8 73.8 73.8
+ 2010-10-15 13:46:21 73.8 73.8 73.8 73.8
+ 2010-10-15 13:47:27 73.8 73.8 73.8 73.8
+ 2010-10-15 13:47:54 73.8 73.8 73.8 73.8
+ 2010-10-15 13:49:51 73.7 73.7 73.7 73.7"
>
> Lines2 <- "Date Time
V2   V3   V4   V5
+ 2010-10-15 12:09:12 74.0 74.0 74.0 74.0
+ 2010-10-15 12:09:33 73.9 73.9 73.9 73.9
+ 2010-10-15 12:20:36 74.0 74.0 74.0 74.0
+ 2010-10-15 12:30:36 74.0 74.0 74.0 74.0
+ 2010-10-15 12:41:03 73.7 73.7 73.7 73.7"
>
> library(zoo)
> dat1 <- read.zoo(textConnection(Lines1), header =
TRUE,
+ index = list(1, 2), FUN = function(d, t)
as.POSIXct(paste(d, t)))
Warning messages:
1: closing unused connection 8 (Lines2)
2: closing unused connection 7 (Lines1)
3: closing unused connection 5 (Lines2)
4: closing unused connection 4 (Lines1)
5: closing unused connection 3 (Lines2)
> dat2 <- read.zoo(textConnection(Lines2), header =
TRUE,
+ index = list(1, 2), FUN = function(d, t)
as.POSIXct(paste(d, t)))
> merge(dat1, dat2)
               
    V2.dat1 V3.dat1 V4.dat1 V5.dat1 V2.dat2
V3.dat2
V4.dat2 V5.dat2
2010-10-15 12:09:12      NA   
  NA      NA     
NA    74.0    74.0
74.0    74.0
2010-10-15 12:09:33      NA   
  NA      NA     
NA    73.9    73.9
73.9    73.9
2010-10-15 12:20:36      NA   
  NA      NA     
NA    74.0    74.0
74.0    74.0
2010-10-15 12:30:36      NA   
  NA      NA     
NA    74.0    74.0
74.0    74.0
2010-10-15 12:41:03      NA   
  NA      NA     
NA    73.7    73.7
73.7    73.7
2010-10-15 13:43:54    73.8   
73.8    73.8    73.8     
NA      NA
  NA      NA
2010-10-15 13:44:15    73.8   
73.8    73.8    73.8     
NA      NA
  NA      NA
2010-10-15 13:45:51    73.8   
73.8    73.8    73.8     
NA      NA
  NA      NA
2010-10-15 13:46:21    73.8   
73.8    73.8    73.8     
NA      NA
  NA      NA
2010-10-15 13:47:27    73.8   
73.8    73.8    73.8     
NA      NA
  NA      NA
2010-10-15 13:47:54    73.8   
73.8    73.8    73.8     
NA      NA
  NA      NA
2010-10-15 13:49:51    73.7   
73.7    73.7    73.7     
NA      NA
  NA      NA

--
Statistics & Software Consulting
GKX Group, GKX Associates Inc.
tel: 1-877-GKX-GROUP
email: ggrothendieck at gmail.com
______________________________________________
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.

Reply via email to