Kuo-Hsien Chang
Kuo-Hsien Chang

Reputation: 935

merging time series datasets, but missing the time series column

I've tried methods from others for merging time series datasets. However, The time series column is missing. Please see captured screen.

enter image description here

Here is the example of my datasets.

df1 = data.frame(Time = round(seq(1, 200, length.out= 50)), Var1 = runif(50,1, 10))
df2 = data.frame(Time = round(seq(1, 200, length.out= 80)), Var2 = runif(80,1, 10))
df3 = data.frame(Time = round(seq(1, 200, length.out= 100)), Var3 = runif(100,1, 10))

Here is what I've tried.

a = read.zoo(df1,drop = FALSE)
b = read.zoo(df2,drop = FALSE)
c = read.zoo(df3,drop = FALSE)
abc = merge(a, b, c)

How can I add one first column listing the Time? Any comments about this task that I can learn from you?

Thanks.

Upvotes: 0

Views: 57

Answers (1)

G. Grothendieck
G. Grothendieck

Reputation: 269556

This converts all three data frames to zoo and merges them into a combined zoo object.

z <- do.call("merge", lapply(list(df1, df2, df3), read.zoo, drop = FALSE))

Note that in zoo objects the time is stored in the index attribute. It is not a column. The statement shown above already includes the time as derived from the first columns of each of the data frames.

Upvotes: 1

Related Questions