我进行了重复测量anova,这是我的代码,操作简单,而且我总是快速完成。
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 :(得分:1)
您的数据集中有12个级别,但在年龄级别中,您只指示了11个级别。 即你忘记了14
ageLevels&lt; - c(1,2,3,4,5,6,7,8,9,10,12, 14 )