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 <[email protected]>:
> 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
> [email protected]
> ///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\
>
>
>
> --
> ///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\
> Jose Claudio Faria
> Estatistica - prof. Titular
> UESC/DCET/Brasil
> [email protected]
> ///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\
> _______________________________________________
> R-br mailing list
> [email protected]
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>
--
Henrique Dallazuanna
Curitiba-Paraná-Brasil
25° 25' 40" S 49° 16' 22" O
_______________________________________________
R-br mailing list
[email protected]
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br