我有一个data.frame,包含三列,即Name_of_brand,价格和数量。我想用(lm)函数计算线性回归系数。
Name_of_brand Price Quantitity
1. Brand 1 80 100
2. Brand 1 85 95
3. Brand 2 90 80
4. Brand 2 90 100
5. Brand 2 100 100
6. Brand 3 150 80
7. Brand 4 155 70
8. Brand 5 165 70
9. Brand 5 165 60
10. Brand 6 170 60
11. Brand 7 180 60
12. Brand 7 180 60
13. Brand 7 180 70
14. Brand 8 170 80
15. Brand 8 170 60
首先,我要转换日志中的数字,然后按_brand的名称进行分组,然后为每个类似示例(例如品牌1,品牌2等)计算价格的易用性。
品牌1表
Name_of_brand Price Quantitity
1。品牌1 80100 2.品牌1 85 95
品牌2表
Name_of_brand Price Quantitity
3. Brand 2 90 80
4. Brand 2 90 100
5. Brand 2 100 100
品牌3等...
最后,我想获得带有两列的final_table,第一列具有Name_of_brand和Coeff_elasticity。
最终表
Name_of_brand Coeff_elasticity.
1. Brand 1 -0,5
2. Brand 2 -0,6
3. Brand 3 -0,7
4. Brand 4 -0,7
5. Brand 5 -0,5
etc.
有人可以帮我一些计算代码吗?
答案 0 :(得分:2)
无需将您的数据明确分为几个子集。
model <- plyr::dlply(data, "Name_of_brand", function(df) lm(log(Quantitity) ~ log(Price), data = df))
您可以使用coef
来获取“ Name_of_brand”每个级别的系数:
coefficients <- plyr::dlply(model, coef)