
o seu exp2 e' uma lista de listas... note que a funcao usada para exp2 retorna "list(preditos)", ao inves de 'preditos' apenas... adicionalmente, vc nao quer do.call('rbind', exp2), mas sim do.call('c', exp2), ou - muito mais simples - unlist(exp2). mas, o melhor mesmo, seria vc ajustar o modelo de uma vez so: ##start osDados <- dados osDados[['caso']] <- factor(osDados[['caso']]) fit <- lm(y~x*caso, data=osDados) b0 <- rbind(caso1=c(1, 0, 0, 0, 0, 0), caso2=c(1, 0, 1, 0, 0, 0), caso3=c(1, 0, 0, 1, 0, 0)) b1 <- rbind(caso1=c(0, 1, 0, 0, 0, 0), caso2=c(0, 1, 0, 0, 1, 0), caso3=c(0, 1, 0, 0, 0, 1)) interceptos <- b0 %*% coef(fit) coefAngular <- b1 %*% coef(fit) library(gmodels) estimable(fit, b0) estimable(fit, b1) pred <- predict(fit) ## end b 2011/5/4 Gustavo Marcatti <vgp.gustavo@yahoo.com.br>
Bom dia a todos! Quando desejo extrair os coeficientes de diversos ajustes, por exemplo, procedo da seguinte maneira: x<-1:60 y<-rep(sort(abs(rnorm(20))),3) caso <- rep(1:3,each = 20) dados <- data.frame(caso,x,y) exp1 <- lapply(split(dados,dados["caso"]),FUN=function(data){ coefs <- coef(lm(y ~ x, data=data)) unlist(coefs) }) do.call("rbind",exp1)
Minha dúvida é como faço para extrair um vetor de varios casos, assim como no exemplo abaixo: exp2 <- lapply(split(dados,dados["caso"]),FUN=function(data){ preditos <- fitted(lm(y ~ x, data=data)) list(preditos) }) do.call("rbind",exp2)
O resultado esperado seria um único vetor de tamanho 60 x 1 contendo todos os valores preditos para cada ajuste.
Obs1: Esse exemplo é apenas para ilustrar, não é o que realmente estou precisando. Obs2: Os casos tem tamanhos variados, não exatamente 20 observações.
Gustavo Marcatti Eng. Florestal UFV
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
-- Successful people ask better questions, and as a result, they get better answers. (Tony Robbins)