2015-10-13 116 views
0

我試圖建立一個基於天氣的月度能源消耗模型,按地點(有〜1100年)和年份(我想從2011年到2014年這樣做)分組。該數據被稱爲「factin」,看起來像這樣:具有嵌套/多組類別的R線性模型/ lmList?

Store Month  Days UPD  HD  CD  Year 
1 August, 2013 31 6478.27 0.06 10.03 2013 
1 September, 2013 30 6015.38 0.50 5.67 2013 
1 October, 2013 31 5478.21 5.29 1.48 2013 
1 November, 2013 30 5223.78 18.60 0.00 2013 
1 December, 2013 31 5115.80 20.52 0.23 2013 
6 January, 2011 31 4517.56 27.45 0.00 2011 
6 February, 2011 28 4116.07 16.75 0.07 2011 
6 March, 2011  31 3981.78 12.68 0.39 2011 
6 April, 2011  30 4041.68 3.83 2.53 2011 
6 May, 2011  31 4287.23 1.61 6.58 2011 

和我的模型代碼,它只是吐出1組係數爲所有這些年來每家店的,看起來是這樣的:

factout <- lmList(UPD ~ HD + CD | Store, factin) 

我的問題是,有沒有什麼辦法可以爲每個商店和年份獲取係數,而不必爲每年創建單獨的數據框?

+1

創建data.frame列'交互(Store,Year)'並將其用作分組因子。 – Roland

+0

它拋回了一個錯誤代碼...'unique.default(x,nmax = nmax)中的錯誤: unique()僅適用於向量' – CTK

+0

@Roland完美的工作!沒有意識到互動是一種功能。謝謝! – CTK

回答

0
 dat <- read.table(header = T, stringsAsFactors = F, text = "Store Month year  Days UPD  HD  CD  Year 
        1 August 2013 31 6478.27 0.06 10.03 2013 
        1 September 2013 30 6015.38 0.50 5.67 2013 
        1 October 2013 31 5478.21 5.29 1.48 2013 
        1 November 2013 30 5223.78 18.60 0.00 2013 
        1 December 2013 31 5115.80 20.52 0.23 2013 
        6 January 2011 31 4517.56 27.45 0.00 2011 
        6 February 2011 28 4116.07 16.75 0.07 2011 
        6 March 2011  31 3981.78 12.68 0.39 2011 
        6 April 2011  30 4041.68 3.83 2.53 2011 
        6 May 2011  31 4287.23 1.61 6.58 2011") 

factout <- lmList(UPD ~ HD + CD | Store, dat) 



data.frame(Store = unique(dat$Store), summary(factout)$coef[1:2,1,1:3]) 

    (Intercept)  HD  CD 
1 5405.108 -12.90986 107.2061 
6 3581.307 32.93137 102.9780