[R-br] transferir modelo da função nls para a função curve() automaticamente

Fernando Antonio de souza nandodesouza em gmail.com
Quinta Fevereiro 25 19:03:10 BRT 2016


Olá a todos. Estou criando uma função para trabalhar com o pacote Rpanel no
qual pretendo criar uma lista de seleção com opção para escolher vários
modelos. Como vou trabalhar com vários modelos quero criar funções que
automatizem todo o processo. Minha questão é a seguinte: Eu ajusto um
modelo não-linear, produzo um gráfico e adiciono a curva do modelo aos
gráfico, utilizando a função curve(). Gostaria de passar o modelo para a
função curve() de forma que dependendo do modelo selecionado a expressão
incluída na função curve() se altere. Tentei a opção modelo$call conforme
código abaixo o qual me retorna o lado esquerdo da fórmula. Entretanto não
funciona. A função curve retorna a seguinte mensagem de erro;

"Error in curve(fm1$call[[2]][[3]], add = TRUE, col = 2) :
  'expr' must be a function, or a call or an expression containing 'x'

Isto se deve ao fato de a formula retornada pelo comando fm1$call[[2]][[3]]
ser do typo "language"

typeof(fm1$call[[2]][[3]])
[1] "language"

ja tentei utilizar o comando as.expression e não obtive sucesso. Procurei
na internet e nada! Como eu posso substituir o comando "fm1$call[[2]][[3]]"
na função curve de forma que ela funcione?

fm1 <- nls(circumference ~ A/(1+exp((B-age)/C)), Orange,start = list(A =
160, B = 700, C = 350))
plot (circumference~ age, Orange)
with(as.list(coef(fm1)), curve("fm1$call[[2]][[3]]",add=TRUE, col=2))

-- 
=======================================================================
Fernando Souza
Zootecnista, DSc. Produção Animal
e-mail:nandodesouza em gmail.com
https://producaoanimalcomr.wordpress.com/
========================================================================
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160225/1cef48bf/attachment.html>


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