通过回归循环生成P值和斜率

时间:2014-05-02 09:34:19

标签: r loops regression

有没有办法为大约500个时间序列生成回归的斜率和P值。下面给出了一个示例文件:

我有以下格式的.csv文件:

 year  var1 var2  var3 var4 var5 var6 ....var500
 1951  2    4     3    3   9     3 ........3
 1952  4    7     4    1   2     2 ........4
 1953  5    5     6    9   4     3 ........5
 1954  6    9     6    2   3     9 ........6
 1955  6    4     4    2   1     2 ........1
 1956  6    4     3    7   2     8 ........8

我想对name1,name2,name3,name 4进行线性回归....并且每个回归都能够打印出斜率和p值。 到目前为止,我已经为每个变量手动执行此操作

  var1_mdl<-lm(var1 ~ year);summary(var1_mdl)

有没有办法可以进行线性回归,并能够将每个var的斜率和P值写在一个单独的文件中。

非常感谢

1 个答案:

答案 0 :(得分:0)

您可以对数据框apply的子集使用df函数,仅代表感兴趣的列df[,only_varX],如下所示

apply(df[,only_varX], 2, function(col, year){ lm(col ~ year) }, df$year)

您将获得lm每列df[,only_varX]个对象的列表作为结果。

使用该列表,您可以extract p-value和斜率(使用$coefficients)并将它们写入文件/文件。