2015-10-13 82 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