【发布时间】:2011-03-22 05:28:56
【问题描述】:
我正在尝试使用面板数据和二元因变量运行合并逻辑回归。因为我想滞后一些变量,所以我使用 plm 包来创建它们。当我尝试以其他方式进行时,我遇到了问题。我不能使用 lag 或 embed,因为它是面板数据。
hybridsubsidies <-pdata.frame(reduced, c("state","year"))
lagee<-(lag(hybridsubsidies$eespending,1))
lagratio<-(lag(hybridsubsidies$ratio, 1))
laggopvote<-(lag(hybridsubsidies$gopvote, 1))
laggasoline<-(lag(hybridsubsidies$gasoline, 1))
我想在运行汇总分析之前将所有变量放入原始数据框(混合补贴)。我很确定我不需要,但我是一个视觉型的人,并且想在运行任何分析之前验证数据的格式是否合适。
从下面的输出中,看起来一切正常。
head(滞后(hybridsubsidies$eespending,1))
阿拉巴马-1999阿拉巴马-2000阿拉巴马-2001阿拉巴马-2002阿拉巴马-2003阿拉巴马-2004
NA 58294 55378 26982 28264 2566头(混合补贴$eespending)
阿拉巴马-1999阿拉巴马-2000阿拉巴马-2001阿拉巴马-2002阿拉巴马-2003阿拉巴马-2004
58294 55378 26982 28264 2566 26906
我的问题是,当我尝试将此滞后变量分配为数据框中的向量时,这样,
hybridsubsidies$lagee<-(lag(hybridsubsidies$eespending,1))
确实如此(当我调用数据框中的名称时,它们被包含在内),但是我无法再查看数据框。 R 对我说:
edit.data.frame(get(subx, envir = parent), title = subx, ...) 中的错误: 只能处理向量和因子元素
如何解决这个问题,以便在运行分析之前查看数据框?我想看看它,因为看起来我将不得不使用 glm 而不是 plm(池)进行此分析,因为因变量是二进制变量,而 plm 不支持这些 d.v.
这已经给我带来了一段时间的问题。
col1 ST YR EELAG EE
[1,] 1 1 NA 58294
[2,] 1 2 58294 55378
[3,] 1 3 55378 26982
[4,] 1 4 26982 28264
[5,] 1 5 28264 2566
[6,] 1 6 2566 26906
[7,] 1 7 26906 29466
[8,] 2 1 NA 355
[9,] 2 2 355 259
[10,] 2 3 259 224
[11,] 2 4 224 217
[12,] 2 5 217 241
[13,] 2 6 241 231
[14,] 2 7 231 231
[15,] 3 1 不适用 5111
[16,] 3 2 5111 3753
[17,] 3 3 3753 2211
[18,] 3 4 2211 1452
[19,] 3 5 1452 2913
[20,] 3 6 2913 3128
[21,] 3 7 3128 7132
[22,] 4 1 NA 1597
[23,] 4 2 1597 905
【问题讨论】:
-
我不认为滞后在做你想的那样——看看不同州或年份之间的边界。
-
Hadley,我检查了数据框,看起来它正在做我想做的事。请见上文。
-
我认为如果我使用 plm 包中的 pdata.frame,那么数据框将转换为时间序列对象。由于它具有单位和时间 id,我认为 lag 正在做我需要它做的事情。