我正在尝试对数据集中的每个邮政编码运行回归并将系数保存到数据框中,但我遇到了问题。

每当我运行下面的代码时,我都会得到一个名为“系数”的数据框,其中包含每个邮政编码,但每个邮政编码的截距和系数等于简单回归 lm(Sealed$hhincome ~ Sealed$square_footage) 的结果。

当我按照下面链接中 Ranmath 示例中的指示运行代码时,一切都按预期工作。在使用 STATA 多年后,我是 R 的新手,因此将不胜感激任何帮助:)

R extract regression coefficients from multiply regression via lapply command

library(plyr)
Sealed <- read.csv("~/Desktop/SEALED.csv")

x <- function(df) {
      lm(Sealed$hhincome ~ Sealed$square_footage)
}

regressions <- dlply(Sealed, .(Sealed$zipcode), x)
coefficients <- ldply(regressions, coef)

最佳答案

因为 dlply 接受一个 ... 参数,允许将附加参数传递给函数,所以您可以使事情变得更简单:

dlply(Sealed,.(zipcode),lm,formula=hhincome~square_footage)
lm 的前两个参数是 formuladata 。由于 formula 是在此处指定的,因此 lm 将选择它给出的下一个参数(Sealed 的相关邮政编码特定块)作为 data 参数......

关于r - 使用 PLYR 提取 R 中的组回归系数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13407361/

10-12 19:51