将 fixef 强制转换为 R 中的数据框(PLM 包)
Coerce fixef to data frame in R (PLM package)
我想从固定效果面板数据回归中获取固定效果作为数据框。像这样:
data("Produc", package = "plm")
zz <- plm(log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp,
data = Produc, index = c("state","year"))
View(as.data.frame(fixef(zz)))
不幸的是,最后一条语句不起作用。
我的预期输出是一个数据框,其中 state
在第一列,固定效应在第二列。
我用 Google 搜索了一下,我得到的结果是:
不幸的是,这个答案似乎不起作用。
这很容易构建。先查一下是什么对象 fixef
returns:
str(fixef(zz))
#Class 'fixef' atomic [1:48] 2.2 2.37 2.26 2.5 2.4 ...
# ..- attr(*, "se")= Named num [1:48] 0.176 0.175 0.167 0.201 0.173 ...
# .. ..- attr(*, "names")= chr [1:48] "ALABAMA" "ARIZONA" "ARKANSAS" "CALIFORNIA" ...
# ..- attr(*, "type")= chr "level"
这告诉我们fixef
returnsclass'fixef'的一个对象,它的核心是一个长度为48的原子向量。除了class 属性有 3 个属性 "se"、"names"(通常可以使用 names
函数访问)和 "type".
那么你可以这样做:
data.frame(state = names(fixef(zz)),
fixef = as.vector(fixef(zz)))
# state fixef
#1 ALABAMA 2.201617
#2 ARIZONA 2.368088
#3 ARKANSAS 2.263016
# ...
as.vector
是必需的,因为 data.frame
试图将 S3 对象强制转换为 data.frame 而 as.data.frame
.
没有相应的方法
我想从固定效果面板数据回归中获取固定效果作为数据框。像这样:
data("Produc", package = "plm")
zz <- plm(log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp,
data = Produc, index = c("state","year"))
View(as.data.frame(fixef(zz)))
不幸的是,最后一条语句不起作用。
我的预期输出是一个数据框,其中 state
在第一列,固定效应在第二列。
我用 Google 搜索了一下,我得到的结果是:
不幸的是,这个答案似乎不起作用。
这很容易构建。先查一下是什么对象 fixef
returns:
str(fixef(zz))
#Class 'fixef' atomic [1:48] 2.2 2.37 2.26 2.5 2.4 ...
# ..- attr(*, "se")= Named num [1:48] 0.176 0.175 0.167 0.201 0.173 ...
# .. ..- attr(*, "names")= chr [1:48] "ALABAMA" "ARIZONA" "ARKANSAS" "CALIFORNIA" ...
# ..- attr(*, "type")= chr "level"
这告诉我们fixef
returnsclass'fixef'的一个对象,它的核心是一个长度为48的原子向量。除了class 属性有 3 个属性 "se"、"names"(通常可以使用 names
函数访问)和 "type".
那么你可以这样做:
data.frame(state = names(fixef(zz)),
fixef = as.vector(fixef(zz)))
# state fixef
#1 ALABAMA 2.201617
#2 ARIZONA 2.368088
#3 ARKANSAS 2.263016
# ...
as.vector
是必需的,因为 data.frame
试图将 S3 对象强制转换为 data.frame 而 as.data.frame
.