每个因素水平上的 R lm

R lm on each factor level

我希望在 R 中的编码方法和解决方法层面找到一些指导。我有一个简单的数据框,如下所示:

str(pf)
   'data.frame':  1536 obs of 4 variables:
   $ dt : POSIXct 
   $ pfRet : num 
   $ Src : Factor w/6 Levels "ALPA" , "OMEGA", "GAMMA" , ..
   $ ret : num

我只想查看 6 个不同因素中每一个的 lm(pfRet ~ ret ) 并进行比较。我希望能够获得显示按每个因子水平的 lm 的 p 值排序的输出。我想针对每个因素(ALPHA、OMEGA、GAMA 等)提出这个问题,哪个最能解释 pfRet 和 ret 之间的关系?

从编程的角度来看,可能有一种方法可以获取 6 个因子级别的向量,然后在框架上应用 lm。但我无法让它正常工作。我尝试了以下方法:

GenLm = function(x) { 
  y=pf[which[(pf$Src==x,)]
  return(lm(y$pfRet ~ y$ret )) }

testList = data.frame( Src = as.character(unique( pf$Src ) ) )

testList$lm = apply(  ... ?? )

我尝试了 apply、ddply 等的各种组合。我只是无法将其转换为可以生成输出以显示每个变量的拟合的简单格式。

谢谢,乔希 从更高层次的角度来看,这是正确的做法吗?这肯定是 R 用户一直在处理的事情。

lmList,在 nlmelme4 包中,将开箱即用(它们基本上是等价的,除了 lme4 可以处理GLM 以及线性模型,但在某些情况下可能 稍微 不太稳健)

例如:

library("lme4")
mm <- lmList(Reaction~Days|Subject,sleepstudy)
summary(mm)