2
我有一個數據庫(每個下面的簡化格式)與城市,不同日期和這些日期的溫度。我想爲每個城市計算一段時間內的趨勢,以及這種趨勢是否顯着。R時間序列ddply
我想我必須以某種方式將ddply與lm函數(例如lm(date〜temp))和一個適合係數的調用結合在一起,但不知道如何執行此操作....
可能有一個更簡單的解決方案 - 非常感謝幫助我;
W¯¯
City Date Temp (Celcius)
Amsterdam Jan-01 21
Amsterdam Mar-01 23
Amsterdam May-01 25
Barcelona Feb-01 20
Barcelona Mar-01 19
Barcelona May-01 25
Copenhagen Jan-01 19
Copenhagen Feb-01 23
Copenhagen May-01 22
我想:
這是我的嘗試:
tempdata=read.csv("tempfile.csv", header=TRUE, sep=",", as.is=TRUE)
tempdata$Date <- as.Date(tempdata$Date, "%d/%m/%Y")
funcreg = function(x) {regmodel=lm(tempdata$Date ~ tempdata$Temperature)
return(data.frame(regmodel$coefficients[2]))
}
ddply(tempdata, .(City), funcreg)
給出的輸出:
City regmodel.coefficients.2.
1 Amsterdam 14.71244
2 Barcelona 14.71244
3 Copenhagen 14.71244
Dput:
structure(list(City = c("Amsterdam", "Amsterdam", "Amsterdam",
"Barcelona", "Barcelona", "Barcelona", "Copenhagen", "Copenhagen",
"Copenhagen"), Date = c("01/01/2001", "01/03/2001", "01/05/2001",
"01/02/2001", "01/03/2001", "01/05/2001", "01/01/2001", "01/02/2001",
"01/05/2001"), Temperature = c(21L, 23L, 25L, 20L, 19L, 25L,
19L, 23L, 22L), X = c(NA, NA, NA, NA, NA, NA, NA, NA, NA)), .Names = c("City",
"Date", "Temperature", "X"), class = "data.frame", row.names = c(NA,
-9L))
使用'x',而不是'tempdata'內'funcreg'。您可能還想考慮一下,您的哪些變量是獨立的,哪些是獨立的。 – Roland
謝謝 - 非常感謝 - 解決了它。愚蠢的錯誤在我身上。我在寫作方面是新手。有一個問題引向另一個問題 - 我也在迴歸的p值和t值中加入。但是 - 返回函數只允許輸出一個變量。我可以運行多個函數,並將數據幀合併到一起,但我想知道是否有更智能的方法。 – user1885116
@羅蘭,也許把你的評論作爲答案,以便問題可以被標記爲解決? –