2016-04-22 12 views
0

私はFriedman.testを繰り返し測定するために使いたいと思っています。 (pre1after1)の違いを(pre2after2)と比較したいと思います。 1と2は2つの異なる薬剤です。 Pre1(薬物1を摂取する前)after1(薬物2を服用した後)。反復測定friedman.test

例:これに

df <- data.frame(Name= rep(c("a","b","c","d"), times=4), Blocks = c(rep("pre1",time=4), rep("after1",time=4), rep("pre2",time=4), rep("after2",time=4)), group= rep(c("1","1","1","1","2","2","2","2"), time=2), Value=runif(16, 5.0, 7.5)) 

friedman.test(Value ~ Blocks | Name, data=df) 

私は、各PRE1と1の後には一緒であるという考えを追加する必要があります。 so:

friedman.test(Value ~ Blocks | Name, data=df, groups = group) 

ERROR: Error in model.frame.default(formula = Value ~ Blocks + Name, data = df, : 
    invalid type (pairlist) for variable '(...)' 

なぜこのエラーが発生しますか?私の目標に到達する方法?

返事が遅れて申し訳ありません
+0

ヘルプファイルには、次のように書かれています。\t a〜b | c、ここでa、b、cはそれぞれデータ値と対応するグループとブロックを与えます –

+0

したがって、この式で説明したことを行うことはできません... これを適用するには friedman.test (値〜ブロック|名前、データ= df) "前"と "後"の治療に関する情報が見当たらないので、正しくないと思います。 – Giffredo

答えて

1

this postに基づいて

、およびdata.tableの使用を推奨:

library (data.table, nlme) 
    Longitudinal <- data.table (cbind (
    expand.grid (Subject = letters [ 1:4 ], Time = 1:2, Drug = 1:2), 
    Value = runif (16, 5.0, 7.5))) 

    Longitudinal [, ValueRank := rank (Value)] 

    Fit <- lme (fixed = ValueRank ~ Time + Drug, 
     random = ~1|Subject, data = Longitudinal) 
    anova (Fit) 

は、この情報がお役に立てば幸いです。

+0

ありがとう!私はあなたに "random =〜1 | Subject"の説明をしてもらえますか?私のデータのこのスクリプトは動作しません。エラー: MEEM(object、conLin、control $ niterEM)のエラー: レベル0のバックソル、ブロック1 – Giffredo