Portanto, se fizermose funciona como esperado. Já para a variance, a parte relevante eh essamake.link(link)vai fazer com que a função uselink <- "log"Ou seja, passando um caracter comoWagner,se olhar dentro da função quasi, no início tem isso para o link
linktemp <- substitute(link)
if (!is.character(linktemp))
linktemp <- deparse(linktemp)
if (linktemp %in% c("logit", "probit", "cloglog", "identity",
"inverse", "log", "1/mu^2", "sqrt"))
stats <- make.link(linktemp)
else if (is.character(link)) {
stats <- make.link(link)
linktemp <- link
vtemp <- substitute(variance)
if (!is.character(vtemp))
vtemp <- deparse(vtemp)
variance_nm <- vtemp
switch(vtemp, constant = {
...
variance <- "mu"e seguir a lógica
(vtemp <- substitute(variance))
variance
class(vtemp)
[1] "name"vtemp ja não eh mais um character, portanto ele vai executar
vtemp <- deparse(vtemp)
vtemp
[1] "variance"
variance_nm <- vtemp
variance_nm
[1] "variance"Como dentro das opções do switch(...) ele não vai achar nenhuma opção, ele vai para a alternativa no final que é
switch(vtemp, constant = {
...
}, variance_nm <- NA)e variance_nm sendo NA vai cair nisso aqui
if (is.na(variance_nm)) {
if (is.character(variance))
stop(gettextf("'variance' \"%s\" is invalid: possible values are \"mu(1-mu)\", \"mu\", \"mu^2\", \"mu^3\" and \"constant\"",
variance_nm), domain = NA)que é o erro. Agora, se isso faz sentido ou se é uma "falha" de programação na função já não sei dizer (acredito que isso seja intencional, mas o motivo não da pra saber).
De qualquer maneira vc pode modificar a função quasi() pra fazer do jeito que vc esperaria, começando por tirar o substitute() ali no começo...Abraço,
---
Fernando de Pol Mayer
Laboratório de Estatística Ambiental - LEA
Instituto de Matemática, Estatística e Física - IMEF
Universidade Federal do Rio Grande - FURG
URL: http://fernandomayer.github.io
e-mail: fernando.mayer [@] {gmail.com, furg.br}2014-04-15 12:24 GMT-03:00 Wagner Bonat <wbonat@gmail.com>:Obrigado !!Ok ! Mas vocês não acharam estranho não precisar fazer a mesma coisa para o link ?Vc teria alguma explicação para isso ?
Em 15 de abril de 2014 14:20, Éder Comunello <comunello.eder@gmail.com> escreveu:Wagner, bom dia!Supondo que o vetor de valores possíveis é da classe 'expression':### <code r>link = "log"variance = "mu"quasi(link = link, variance = as.expression(variance))
## Family: quasi# Link function: log
variance = "mu(1-mu)"quasi(link = link, variance = as.expression(variance))##Family: quasi#Link function: log### </code>
_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
--
Wagner Hugo Bonat
LEG - Laboratório de Estatística e Geoinformação
UFPR - Universidade Federal do Paraná
_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.