Solução para problemas com a função LeveneTest
2 participantes
Página 1 de 1
Solução para problemas com a função LeveneTest
Dúvida que surgiu no webnário, em breve posto a solução.
Re: Solução para problemas com a função LeveneTest
Voltei!
Explicando: durante o webnario, surgiu uma questão que eu já sei ser um pouco recorrente: a função leveneTest do pacote car falhou, com uma mensagem de erro de "não existe a função".
Isto já aconteceu comigo e com alunos de várias edições do programa, e me parece ser algum problema com o pacote car. Não sei por que isto ocorre, mas de vez em quando é um problema que aparece.
Temos duas soluções possíveis. A primeira é na base da insistência: salve seu script, feche o R, abra de novo e carregue o car novamente. Quase sempre funciona, apesar de ser bem chato ter que fazer isso de vez em quando...
A outra é a que eu apresentei ontem no webnário: podemos salvar a função car em um arquivo nosso, e chamá-lo quando necessário. Vou explicar como fazer isso a seguir, ok? Já volto e descrevo todos os passos.
Explicando: durante o webnario, surgiu uma questão que eu já sei ser um pouco recorrente: a função leveneTest do pacote car falhou, com uma mensagem de erro de "não existe a função".
Isto já aconteceu comigo e com alunos de várias edições do programa, e me parece ser algum problema com o pacote car. Não sei por que isto ocorre, mas de vez em quando é um problema que aparece.
Temos duas soluções possíveis. A primeira é na base da insistência: salve seu script, feche o R, abra de novo e carregue o car novamente. Quase sempre funciona, apesar de ser bem chato ter que fazer isso de vez em quando...
A outra é a que eu apresentei ontem no webnário: podemos salvar a função car em um arquivo nosso, e chamá-lo quando necessário. Vou explicar como fazer isso a seguir, ok? Já volto e descrevo todos os passos.
Re: Solução para problemas com a função LeveneTest
OK, vamos lá!
O truque aqui é "pegar" o código da função leveneTest. Não é suuuper trivial, mas também não é difícil, você pode fazer assim:
No final, você vai querer copiar o pedaço a seguir, e incluir antes dele um nome para a função. Eu vou usar um nome diferente, só para diferenciar da função que vem no pacote. Assim:
Se você quiser queimar a primeira etapa e só copiar o código acima, já tá valendo.
Com o código acima, você já pode executar e depois chamar a função, com o nome levene().
Mas podemos tornar isso ainda mais fácil de usar. Salve o arquivo como um script, deixe ele na sua pasta de trabalho, e quando quiser, use a função source() para chamá-lo. No meu caso, chamei o arquivo de levene.R, e veja a seguir um exemplo de uso (lembrando que este arquivo levene.R precisa estar na pasta de trabalho, certinho?).
Lá vai o exemplo:
É isso. Se tiverem dúvidas, basta perguntar.
O truque aqui é "pegar" o código da função leveneTest. Não é suuuper trivial, mas também não é difícil, você pode fazer assim:
- Código:
#O pacote:
library(car)
#Vendo o que tem na função, para pegar o que interessa:
methods(leveneTest)
#Agora chamando o código que queremos copiar:
car:::leveneTest.default
No final, você vai querer copiar o pedaço a seguir, e incluir antes dele um nome para a função. Eu vou usar um nome diferente, só para diferenciar da função que vem no pacote. Assim:
- Código:
levente<-function (y, group, center = median, ...)
{
if (!is.numeric(y))
stop(deparse(substitute(y)), " is not a numeric variable")
if (!is.factor(group)) {
warning(deparse(substitute(group)), " coerced to factor.")
group <- as.factor(group)
}
valid <- complete.cases(y, group)
meds <- tapply(y[valid], group[valid], center, ...)
resp <- abs(y - meds[group])
table <- anova(lm(resp ~ group))[, c(1, 4, 5)]
rownames(table)[2] <- " "
dots <- deparse(substitute(...))
attr(table, "heading") <- paste("Levene's Test for Homogeneity of Variance (center = ",
deparse(substitute(center)), if (!(dots == "NULL"))
paste(":", dots), ")", sep = "")
table
}
Se você quiser queimar a primeira etapa e só copiar o código acima, já tá valendo.
Com o código acima, você já pode executar e depois chamar a função, com o nome levene().
Mas podemos tornar isso ainda mais fácil de usar. Salve o arquivo como um script, deixe ele na sua pasta de trabalho, e quando quiser, use a função source() para chamá-lo. No meu caso, chamei o arquivo de levene.R, e veja a seguir um exemplo de uso (lembrando que este arquivo levene.R precisa estar na pasta de trabalho, certinho?).
Lá vai o exemplo:
- Código:
#Chamando a função:
source("levene.R")
#Testando com um exemplo:
data(iris)
summary(iris)
levene(iris$Sepal.Length, iris$Species)
É isso. Se tiverem dúvidas, basta perguntar.
Re: Solução para problemas com a função LeveneTest
Prof. Marcos, na minha versão do R (3.4.1 - "Single Candle"), não foi a função que sumiu; na verdade, não existe o pacote car! E quando eu busquei a ajuda ??levene a página do R não encontrou resultados. Estranho, né? Ainda bem que você ainda tem acesso ao código pra compartilhá-lo conosco! Funcionou! Obrigada!
Drika- Mensagens : 10
Data de inscrição : 06/10/2017
Re: Solução para problemas com a função LeveneTest
Drika escreveu:Prof. Marcos, na minha versão do R (3.4.1 - "Single Candle"), não foi a função que sumiu; na verdade, não existe o pacote car! E quando eu busquei a ajuda ??levene a página do R não encontrou resultados. Estranho, né? Ainda bem que você ainda tem acesso ao código pra compartilhá-lo conosco! Funcionou! Obrigada!
Mas que coisa! Você chegou a tentar instalar o pacote car de novo?
De qualquer forma, que bom que a solução funcionou!
Re: Solução para problemas com a função LeveneTest
Ops! Confesso que não tinha tentado fazer isso! Ainda não peguei o jeito... hehe. Faz parte do aprendizado!
Instalei o pacote car e funcionou sim. Sem problemas! Abração!
Instalei o pacote car e funcionou sim. Sem problemas! Abração!
Drika- Mensagens : 10
Data de inscrição : 06/10/2017
Re: Solução para problemas com a função LeveneTest
Que bom que deu certo! É assim mesmo, com o tempo vamos descobrindo os truques e lidando com mais facilidade com problemas como este.
Tópicos semelhantes
» Problemas com a função Help
» Problemas com a função subset
» Problemas com a Minha Primeira Função no R!
» Problemas com o gráfico da função média e desvio
» Dica para fechamento da função par(mfrow...) - Util para RStudio com MARKDOWN
» Problemas com a função subset
» Problemas com a Minha Primeira Função no R!
» Problemas com o gráfico da função média e desvio
» Dica para fechamento da função par(mfrow...) - Util para RStudio com MARKDOWN
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|