我正在尋找一種將不同長度的時間序列轉換爲唯一長度的方法。 我覺得這個問題已經被我找不到了。我想我只是沒有使用正確的詞彙來解決這個問題。將時間序列轉換爲相同長度
數據1:20個變量×250個觀測(時間點)
數據2:20個變量X 50個觀測(時間點)
我想這些數據轉換成100個觀測,同時保持形狀在這兩種情況下的20個變量的曲線。
非常感謝
我正在尋找一種將不同長度的時間序列轉換爲唯一長度的方法。 我覺得這個問題已經被我找不到了。我想我只是沒有使用正確的詞彙來解決這個問題。將時間序列轉換爲相同長度
數據1:20個變量×250個觀測(時間點)
數據2:20個變量X 50個觀測(時間點)
我想這些數據轉換成100個觀測,同時保持形狀在這兩種情況下的20個變量的曲線。
非常感謝
的樣本數據
處理這個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
一種方法是用reshape2
和dplyr
:
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()
現在,通過在每個時間段的值的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()
如果你想要原始的廣泛形式的數據:
shorterWide <- acast(shorter, Time ~ Variable)
你可以做到這一點。這取決於你試圖達到什麼類型的平滑。 –
我想我發現使用此功能 Basic two-dimensional cubic spline fitting in R
我想我是缺少的關鍵詞是三次樣條的方式。
在我來說,我想要做這樣的事情
花鍵(數據1,N = 100) 花鍵(數據1,N = 100)
後一些數據和代碼,你最好的嘗試吧。 –