每个因素级别的R lm

时间:2016-01-31 03:08:12

标签: r apply lm factors

我希望在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用户一直处理的问题。

1 个答案:

答案 0 :(得分:1)

lmListnlme个软件包中,

lme4可以直接执行此操作(除了lme4可以处理之外,它们基本相同GLM以及线性模型,但在某些情况下可能略微不那么健壮)

例如:

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