2015-10-08 5 views
0

Я уже рассмотрел некоторые ответы на этот вопрос, было только два, которые я нашел полезными, и я все еще не могу заставить мой цикл выполнять. Я изо всех сил стараюсь использовать фиксированную формулу для пакета MCMCglmm. У меня есть много моделей для тестирования с этим пакетом, и я хотел бы сделать цикл, чтобы сделать работу проще. Каждый раз, когда я запускаю MCMCglmm, я намерен сделать это с помощью «фиксированной» формулы, и через каждую итерацию цикла я хочу изменить одну из переменных и ввести модифицированную версию «фиксированной» формулы. Вот мой код:Для Loop с регрессией MCMCglmm

for (i in 5:10){ 
    fixed <- as.formula(paste(as$area_pva ~ as$apva_1yr + as$year + as.numeric(unlist(as[i])))) 
    print(fixed) 

    model <- MCMCglmm(fixed=fixed, 
        rcov=~units, family="gaussian", 
        data=as,start=NULL, prior=NULL, random=NULL, tune=NULL, 
        pedigree=NULL, nodes=NULL, scale=FALSE, nitt=30000, 
        thin=30, burnin=1000, pr=TRUE, pl=TRUE, verbose=TRUE, 
        DIC=TRUE, singular.ok=FALSE, saveX=TRUE, saveZ=TRUE, 
        saveXL=TRUE, slice=FALSE, ginverse=NULL) 

    summary(model) 


} 

Пожалуйста, если вы можете помочь мне сделать этот цикл выполненным правильно, я был бы признателен.

ответ

0

Ничего, у меня есть ответ. Мне нужно было сделать всю формулу целым рядом строк:

fixed <- as.formula(paste("as$area_pva~as$apva_1yr+as$year+", colnames(as)[i], sep="")) 

Теперь он отлично работает.