我有一张桌子:
CityData ->
City Price Bathrooms Bedrooms Porch
Milwaukee 2300 2 3 yes
Chicago 3400 3 2 yes
Springfield 2300 1 1 no
Chicago 2390 2 1 yes
我想对每个城市(每个城市多行)进行回归,以得出每个城市的系数。我想对其他混淆变量(浴室,卧室,门廊)的价格进行回归。
我尝试了dplyr库:
library(dplyr)
fitted_models = CityData %>%
group_by(CityData$City) %>%
do(model = lm(CityData$Price ~ CityData$Bathrooms +
CityData$Porch + CityData$Bedrooms, data = CityData))
但是输出只是
14 lm list
14 lm list
14 lm list
有什么建议吗?
答案 0 :(得分:1)
您可以尝试这样的操作。这里以mtcars数据为例。
df <- mtcars
models <- df %>% group_by(cyl) %>% summarise(mod = list(lm(mpg ~ wt)))
这将为您提供一个新的变量mod,其中包含模型的所有信息。您可以将系数称为:
models$mod[[1]]$coefficients
(Intercept) wt
39.571196 -5.647025
您也可以使其更加复杂。
models <- df %>% group_by(cyl) %>% summarise(mod = list(lm(mpg ~ wt + hp)))
models$mod[[1]]$coefficients
(Intercept) wt hp
45.83607319 -5.11506233 -0.09052672
当然models
还将仍然保留该组的信息
models$cyl
[1] 4 6 8