2016-05-08 9 views
0

私は反復測定値anovaを実行しました。これは私のコードですが、簡単な操作です。反復測定anova: 'dimnames'の長さ[1]配列の長さと等しくない

Link to mydata in .csv format

library(car) 
vivo4 <- read.csv("vivo1.csv",sep=";",dec=",") 

ageLevels <- c(1, 2,3,4,5,6,7,8,9,10,12) 
ageFactor <- as.factor(ageLevels) 
ageFrame <- data.frame(ageFactor) 

measures <- function(data = vivo4, n = 4) { #n=4 is 4 variables 
    ## Editor comment: 
    ## correct way to initialize a list, don't use "list(n)" 
    ## you can compare what you get from "list(4)" and "vector ("list", length = 4)" 
    ## lmo's comment: don't use "list" for your variable name (may mask R function "list") 
    ## I have corrected it as "Mylist" 
    Mylist <- vector("list", length = n) 
    for(i in 0:3) {Mylist[[i+1]] <- as.matrix(cbind(data[, 12*i + 1:12])) # 12 visits 
    } 
    Mylist 
} 

measures_list <- measures() 

models <- lapply(
    measures_list, function(x) { 
    ageModel <- lm(x ~ 1) 
    Anova.mlm (ageModel, idata = ageFrame, idesign = ~ageFactor) 
    }) 

models #View the result 

が、私は、私は多くの答えを読んでいるといただきました間違って理解できないエラー

Error in `rownames<-`(`*tmp*`, value = colnames(B)) : 
    length of 'dimnames' [1] not equal to array extent 

を持って、私は監督を必要とします。

+0

をあなたのオブジェクトの名前を重要なオブジェクトクラスと同じにするのが貧弱な形式です。 myListというリストとは異なる名前を使用することをお勧めします。 – lmo

答えて

1

あなたのデータセットには12のレベルがありますが、agelevelsでは11レベルしか示していません。 あなたは14

ageLevels <示し忘れてしまった - すなわち、それは最低でC(1、2,3,4,5,6,7,8,9,10,12、

関連する問題