2015-07-03 142 views
-1

我正在尋找一種將不同長度的時間序列轉換爲唯一長度的方法。 我覺得這個問題已經被我找不到了。我想我只是沒有使用正確的詞彙來解決這個問題。將時間序列轉換爲相同長度

數據1:20個變量×250個觀測(時間點)

數據2:20個變量X 50個觀測(時間點)

我想這些數據轉換成100個觀測,同時保持形狀在這兩種情況下的20個變量的曲線。

非常感謝

+1

後一些數據和代碼,你最好的嘗試吧。 –

回答

1

的樣本數據

處理這個
set.seed(123) 
data <- matrix(0, 250, 20) 
data[1, ] <- rnorm(20) 
for (i in 2:nrow(data)) { 
    data[i, ] <- data[i - 1, ] + rnorm(20, 0, 0.02) 
} 
rownames(data) <- 0:249 

一種方法是用reshape2dplyr

library("reshape2") 
library("dplyr") 
library("ggplot2") 
molten <- melt(data, varnames = c("Time", "Variable")) 

地塊原始數據:

ggplot(molten, aes(x = Time, y = value, colour = factor(Variable))) + geom_line() 

Plot of original data

現在,通過在每個時間段的值的5層中使用的裝置的一個因素減少data.frame

shorter <- molten %>% 
    group_by(Variable, Time %/% 5) %>% 
    summarise(value = mean(value), Time = mean(Time)) 

劇情新數據:

ggplot(shorter, aes(x = Time, y = value, colour = factor(Variable))) + geom_line() 

Plot of shorter data

如果你想要原始的廣泛形式的數據:

shorterWide <- acast(shorter, Time ~ Variable) 
+0

你可以做到這一點。這取決於你試圖達到什麼類型的平滑。 –

0

我想我發現使用此功能 Basic two-dimensional cubic spline fitting in R

我想我是缺少的關鍵詞是三次樣條的方式。

在我來說,我想要做這樣的事情

花鍵(數據1,N = 100) 花鍵(數據1,N = 100)