2

私は、都市、さまざまな日付、およびこれらの日付の気温を含むデータベース(以下の簡略化された形式)を持っています。各都市の経時的な傾向と、この傾向が重要であるかどうかを計算したいと思います。

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))
4

1 に答える 1

1

insidexの代わりに使用します。また、回帰で変数を切り替える必要があります。ここでは温度が明らかに依存しています。tempdatafuncreg

tempdata$Date <- as.Date(tempdata$Date,'%d/%m/%Y')

funcreg = function(x) {
  regmodel <- lm(Temperature ~ Date, data=x) 
  data.frame(trend = regmodel$coefficients[2], 
                 p = summary(regmodel)$coef["Date","Pr(>|t|)"])                       
}

library(plyr)
ddply(tempdata, .(City), funcreg)

        City      trend           p
1  Amsterdam 0.03333025 0.006125688
2  Barcelona 0.06301304 0.298501483
3 Copenhagen 0.01696590 0.660997625
于 2012-12-18T07:53:12.597 に答える