私はこれの初心者なので、これが愚かであるかどうかを判断することはできません。基本的に、巨大なデータセット内のすべての連続変数間でペアワイズ混合効果モデルを実行したいと思います。明らかな代替案は単純なスピアマンの相関ですが、私には理由があり、混合効果モデルを使用する理由を説明するには時間がかかりすぎます。
データは次のようになります。
0 X1507.07 XAB1524.33 XAB1624.21 XAB1808.09...(~4000 columns)
1 12 19 12 45
2 15 35 2 25
3 22 23 65 33
4 0 55 23 67
5 12 10 90 94
6 34 22 11 2
...
90 13 8 14 45
目標は、すべての列のペアワイズモデルです。
スクリプトの問題のある部分は次のとおりです。
for(i in 1:ncol(dat))
{
ni<-names(dat)[i]
pvalue <- apply(dat, 2, function(x)
{
formula<-as.formula(paste(ni,"~", x," + Location",sep=""))
model<-do.call("lme", args = list(formula, random=~1|Subject, data=dat))
summary(model)$tTable[2,5]
})
エラー:
invalid model formula in ExtractVars
混乱している人のために:私はas.formulaを使用します。
model<-lme(X1507.07~x+Region,random=~1|Subject, data=dat)
エラー:
Error in eval(expr, envir, enclos) : object 'x' not found
(「場所」と「件名」はデータフレームデータの要素です)。私は1つのp値のみを気にします(混合効果で物議を醸していることを知っています)。as.formula()でx as.matrix(x)とcolnames(x)を渡そうとしましたが、実際には何も機能していないようです。ポイントは:これが可能かどうか誰かが知っていますか?私がそれを〜10 ^ 7回ループする必要がある場合、それは時間(年)の価値がないので、apply()は私が考えることができる唯一の合理的な代替手段です。