【发布时间】:2018-10-15 00:25:04
【问题描述】:
到目前为止,我们对 R 的经验很少,需要创建一个循环。我们有一个数据集,其中包含 150 多个品牌的销量和相应的价格。我们需要对每个品牌进行回归(以计算 150 种不同的价格弹性)。因为我们不想将每个品牌的每个 lm 函数都输入到我们的 R 脚本中,所以我们希望使用一个循环来或多或少地为每个品牌自动创建回归函数。此外,我们需要将价格系数(即价格弹性)放入数据框的另一列(以绘制价格弹性)。 我们曾想过使用 for() 循环函数,但这不起作用。我们可能在这个函数的规范中犯了一个错误,因为它只计算了所有品牌的一个价格弹性。 你有什么想法吗?我们期待得到任何帮助:)
这是我们线性回归的代码:
在这里,我们为“百威”品牌创建了一个数据框:
bud_all <- subset(brandlevel, brand=="Budweiser")
在这里,我们运行回归,log_move 是“百威”的销量,log_price 是已售商品的价格:
reg_bud <-lm(log_move ~ log_price + as.factor(store), data = bud_all)
这是我们从中得到系数的情况:
summary(reg_bud)
这是我们第一次尝试使用 for 循环,不幸的是,所有品牌的价格弹性只有一个:
out <- data.frame(NULL)
for (i in 1:brandlevel$brand){
m <- summary(lm(log_move ~ log_price, data=brandlevel))
out[i,1] <- m$coefficients[2,1]
}
【问题讨论】:
-
你一遍又一遍地拟合同一个模型。
标签: r loops for-loop linear-regression coefficients