如果兩個時間序列爲data.frames存在,你可以接近它像
df1 <- data.frame(Date=c("2/14/2013",paste0("2/",as.character(18:22),"/2013")),Visits=c(1,3,1,12,10,11))
df2 <- data.frame(Date=paste0("5/",as.character(1:8),"/2015"),Visits=c(19,4,10,27,12,6,1,4))
# turn dates into Dates
df1$Date <- as.Date(df1$Date, format="%m/%d/%Y")
df2$Date <- as.Date(df2$Date, format="%m/%d/%Y")
這可能是一個簡單的添加劑的快捷方式偏移:
offset <- min(df2$Date) - min(df1$Date) # this would make them start at the same place
df2.1 <- df2
df2.1$Date <- df2.1$Date - offset
plot(df1, xlim=range(c(df1$Date,df2.1$Date)),ylim=range(c(df1$Visits,df2$Visits)), type='l',col=2)
lines(df2.1,col=4)
注意,這是有點煩人,因爲x軸上的日期只是根據第一個數據集。一個怪異的解決方法是將它們都轉換爲數字。
df1$Date_n <- as.numeric(df1$Date)
df2$Date_n <- as.numeric(df2$Date)
...也許有他們倆開始在每日1次。
df1$Date_n <- df1$Date_n - min(df1$Date_n) + 1
df2$Date_n <- df2$Date_n - min(df2$Date_n) + 1
也許包括偏移和關於密謀df2
到df1
offset <- 0
scale <- 1
df2$Date_n1 <- df2$Date_n*scale + offset
plot(df1$Date_n, df1$Visits, type='l', col=2, xlim=range(c(df1$Date_n,df2$Date_n1)), ylim=range(c(df1$Visits,df2$Visits)), xlab="day", ylab="Visits")
lines(df2$Date_n1, df2$Visits, col=4)
legend("topleft", legend=c("series 1","series2"),lwd=1,col=c(2,4))
也許不是規模最優雅的解決方案,但它應該讓你在那裏,希望用最小的調整。
爲一個時間序列不與另一個時間序列重疊的位置添加缺失值。 – Alexis
@Alexis但是如果沒有重疊呢? – 2017-05-25 22:33:05
這兩個系列在未繪製的繪製時間段中都會丟失值。 – Alexis