我想在每天的更多变量(a和b和c)之间进行多次线性回归,但实际上我每天会有5或6个数据点。比我想创建回归系数的新列(截距和斜率)。
数据是这样的
Date a b c
1.1.2004 4,8 12,9 5633,0
2.1.2004 1,8 11,5 6166,0
3.1.2004 3,9 15,2 5830,0
4.1.2004 6,8 14,3 2744,0
5.1.2004 5,9 14,2 3422,0
我尝试了apply
apply(data,1, function(x,y) lm(a~c, data=data))
但我每天都得到相同的系数,我仍然不知道如何用ceofficients创建两列。
答案 0 :(得分:2)
我猜你的真实数据集每天只包含一个以上的数据点,否则(正如@BenBolker在评论中已经说过的那样)对它进行线性回归是没有意义的。无论如何,你可以在data.table
包中做类似的事情。尝试
library(data.table)
setDT(df)[, list(Interecept = lm(a ~ c)$coefficients[1],
coeff = lm(a ~ c)$coefficients[2]), by = Date]