[R-br] Função não reconhece variável extraída de um modelo!

Paulo Justiniano paulojus em leg.ufpr.br
Sexta Setembro 30 17:15:52 BRT 2011


Ivan

outra funcao que pode ajudar nisto é terms()
combinada com eval() e outras voce pode ter flexibilidade de manuseio de 
termos em formulas

Isto pode evitar por exemplo, copiar variaveis em objetos de saida e ao 
inves disto, apontar o objeto inicial

exemplos:

terms(y ~ x1 * x2)
density ~ Asym/(1 + exp((xmid - log(conc))/scal))

a saida e uma lista com nomes fixos que voce pode entao explorar a 
estrutura


On Thu, 29 Sep 2011, Ivan Bezerra Allaman wrote:

> Boa tarde senhores!
> 
> Gostaria de saber como posso fazer uma função ler uma variável a partir de um modelo, nls por exemplo. Vamos supor um CMR.
> 
> da <- expand.grid( A=factor( LETTERS[1: 3]), x=1:10)
> da$y <- 10/(1+exp(-( da$x-5)/1) )+rnorm(da$ x,0,0.1)
> 
> n0 <- nls(y~As[A]/ (1+exp(-( x-x0[A])/ S[A])), data=da,
>           start=list(As= c(10,10,10) , x0=c(5,5,5), S=c(1,1,1)))
> 
> fun <- function(modelo){
>   mean(all.vars(summary(modelo)$formula)[1])
> }                                                   
> 
> Percebam que eu quero que a função calcule a média de uma variável, cuja variável foi declarada num determinado modelo.  A função acima
> não dá certo, pois a função entende o seguinte:
> 
> mean("VARIÁVEL") 
> 
> Para dar certo, eu acho, a variável não poderia estar entre aspas. Enfim, alguém tem alguma idéia de como eu posso fazer isso?
> 
> Desde já agradeço a todos.
> 
> (S,f,P)
> Allaman
> 
> 
>
>                                                            \begin{signature}
>
>                                                                  <<>>=
>
>                                                     Prof. Dr. Ivan Bezerra Allaman
>
>                                                   Universidade Estadual de Santa Cruz
>
>                                            Departamento de Ciências Exatas e Tecnológicas
>
>                                                           Ilhéus/BA - Brasil
>
>                                                         Fone: +55 73 3680-5076
>
>                                          E-mail: ivanalaman em yahoo.com.br/ivanalaman em gmail.com
>
>                                                                    @
>
>                                                             \end{signature}
> 
> 
>


Mais detalhes sobre a lista de discussão R-br