我希望在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用户一直处理的问题。
答案 0 :(得分:1)
lmList
或nlme
个软件包中, lme4
可以直接执行此操作(除了lme4
可以处理之外,它们基本相同GLM以及线性模型,但在某些情况下可能略微不那么健壮)
例如:
library("lme4")
mm <- lmList(Reaction~Days|Subject,sleepstudy)
summary(mm)