我與花鍵玩弄和嘗試連接月份中旬進行插值整個年開始,1月15日;但是,我想確保在整個一年中的中點月份設置正確。也就是說,在每個月我都希望中間點(15日)與原始月度數據相同。目前,我擁有的代碼沒有這樣做,其中一些值與原始代碼完全不同。如果可能的話,我希望確保這些確切的數值適合每個月的中點(15日)的數據。
有沒有辦法確保原始數據中的那些點在插值數據中正確設置,以便它們處於每月中點(第15次)的確切位置?
實施例:
# Monthly data
df <- data.frame(x <- seq(1,12),
y <- c(45, 54, 50 ,63, 70, 75, 80, 88, 76, 81, 63, 54))
# Interpolate with spline to daily data starting with 15th of January (351 days)
values <- spline(df$x, df$y, n = 351)$y
# Check values
# Original values
df$y
# New values at 15th of each month
values[c(1,31, 60,91,121,152,182,213,244,274,305,335)]
輸出(一些圓形細,但大多數是關閉):
> df$y
[1] 45 54 50 63 70 75 80 88 76 81 63 54
> values[c(1,31, 60,91,121,152,182,213,244,274,305,335)]
[1] 45.00000 54.21321 49.65891 60.61385 68.91151 73.89644 77.62606 87.33305 79.66860 79.27115 73.10543 54.71480
所需的輸出:
> df$y
[1] 45 54 50 63 70 75 80 88 76 81 63 54
> values[c(1,31, 60,91,121,152,182,213,244,274,305,335)]
[1] 45 54 50 63 70 75 80 88 76 81 63 54
圖片:
紅:原始月點
如果我理解你的問題,你可能會注意到,'df'可以包含任何一組日期(存儲爲R'Date'對象)和值那些日子被用作基礎插值包括多年。然後,您可以爲代碼中所示的時間間隔內的所有日期生成值向量,也可以直接使用'values_by_date'函數獲取任意日期集合的值。 – WaltS
對不起,我誤解了你如何提出答案。這工作完美!謝謝 – Vedda