【发布时间】:2016-10-09 23:32:41
【问题描述】:
我想分别为每个类别的数据框自动生成线性回归。
我的数据框包括一列时间类别,一列 (slope$Abs) 作为因变量,几列应该用作自变量。
head(slope)
timepoint Abs In1 In2 In3 Out1 Out2 Out3 ...
1: t0 275.0 2.169214 2.169214 2.169214 2.069684 2.069684 2.069684
2: t0 275.5 2.163937 2.163937 2.163937 2.063853 2.063853 2.063853
3: t0 276.0 2.153298 2.158632 2.153298 2.052088 2.052088 2.057988
4: ...
总而言之,对于每个时间点,我有 40 个变量,我希望最终得到每个组合的线性回归。如In1~Abs[t0]、In1~Abs[t1]等每列。 当然我可以手动完成,但我想一定有更优雅的方式来完成这项工作。
我进行了研究,发现dlply() 可能是我正在寻找的功能。但是,我的尝试导致错误。
因此,我以某种方式尝试结合以前找到的问题的答案: On individual variables per column 和 on subsets per category
我想出了一个这样的函数:
lm.fun <- function(x) {summary(lm(x ~ slope$Abs, data=slope))}
lm.list <- dlply(.data=slope, .variables=slope$timepoint, .fun=lm.fun )
但我收到以下错误:
Error in eval.quoted(.variables, data) :
envir must be either NULL, a list, or an environment.
希望有人能帮帮我。
提前非常感谢!
【问题讨论】:
-
您能说得更具体些吗?我在阅读本文时遇到的一个问题是了解您是否想要对每列进行简单线性回归或对整个子集 t0、t1、...进行多元线性回归。
-
我很抱歉造成混乱。我正在尝试对每一列进行简单的线性回归。
-
你只想要斜率、截距等。你到底想要什么?运行
lm()函数总结了很多信息。 -
主要我想要每个线性回归的系数用于进一步计算。但是,不仅提取系数,而且无论如何拥有模型都会非常有帮助。在这种情况下,我想绘制回归图以查看值的拟合程度。
标签: r statistics subset plyr linear-regression