有没有办法为大约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值写在一个单独的文件中。
非常感谢
答案 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
)并将它们写入文件/文件。