2016-04-22 103 views
0

我想使用Friedman.test來重複測量。 我想比較(pre1after1)與(pre2after2)之間的差異。 1和2是兩種不同的藥物。 Pre1(服藥前1)1(服藥後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

謝謝!我可以問你一個關於「隨機=〜1 |主題」的說明我的數據上的這個腳本不起作用..有錯誤: MEEM(對象,conLin,控制$ niterEM)中的錯誤: 0級反向奇異性,方塊1 – Giffredo