[R-br] Ajuda: duvida passando uma string como modelo para uma função
Henrique Dallazuanna
wwwhsd em gmail.com
Domingo Abril 17 15:02:35 BRT 2011
Se deseja avaliar uma string, pode usar o parse combinado com o eval:
mF <- function(x=seq(1, 5, by=1),
y=seq(0, 10, by=5),
z='2 - 0.4*y - 0.5*x + 0.8*sqrt(x)')
{
z <- outer(x, y, function(x, y) eval(parse(text = z)))
z
}
2011/4/17 Jose Claudio Faria <joseclaudio.faria em gmail.com>:
> Walmes,
> (Vou repetir a mensagem pq ficou desalinhado o código!)
>
> Embora ache que essa função ainda possa ser melhorada, sua ajuda foi valiosa!
>
> Sua sugestão pode ser mais simples, e próximo do que realmente estou
> precisando, veja:
>
> mF <- function(x=seq(1, 5, by=1),
> y=seq(0, 10, by=5),
> model){
> z <- outer(x, y,
> function(x, y){
> eval(model)
> })
> z
> }
>
> mF(model=quote(2 - 0.4*y - 0.5*x + 0.8*sqrt(x)))
>
>> mF(model=quote(2 - 0.4*y - 0.5*x + 0.8*sqrt(x)))
> [,1] [,2] [,3]
> [1,] 2.300000 0.3000000 -1.700000
> [2,] 2.131371 0.1313708 -1.868629
> [3,] 1.885641 -0.1143594 -2.114359
> [4,] 1.600000 -0.4000000 -2.400000
> [5,] 1.288854 -0.7111456 -2.711146
>
> Talvez na segunda-feira outras pessoas possam dar alguma contribuição...
>
> Abs e muito obrigado!
> --
> ///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\
> Jose Claudio Faria
> Estatistica - prof. Titular
> UESC/DCET/Brasil
> joseclaudio.faria em gmail.com
> ///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\
>
>
>
> --
> ///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\
> Jose Claudio Faria
> Estatistica - prof. Titular
> UESC/DCET/Brasil
> joseclaudio.faria em gmail.com
> ///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>
--
Henrique Dallazuanna
Curitiba-Paraná-Brasil
25° 25' 40" S 49° 16' 22" O
Mais detalhes sobre a lista de discussão R-br