Usar o argumento formula explicitamente (formula = some formula) em t.test
não está funcionando na maioria das versões do R de 3.6.3 (e talvez até antes, não testado) até a atual 4.4.2. O mesmo acontece com wilcox.test
mas não com lm
ou oneway.test
.
A página de ajuda para t.test fornece este exemplo
t.test(extra ~ group, data = sleep)
Se digitarmos
t.test(data = sleep, extra ~ group)
também funciona, mas
t.test(data = sleep, formula = extra ~ group)
não, produzindo um erro que leva a pensar em um problema de análise de argumento:
Erro em t.test.default(data = sleep, formula = extra ~ group) :
o argumento "x" está faltando, sem padrão
Esse é um comportamento esperado?
Isso pode ser considerado um bug do R, ou pelo menos uma "infelicidade".
t.test
é uma função genérica:Da seção 13.4 do Advanced R de Wickham :
(ênfase adicionada)
Então, o que acontece quando você chama
t.test(data = sleep, formula = extra ~ group)
? A função genérica olha para seu primeiro argumento , que é um data frame, então ela despacha parat.test.default()
(a única outra opção ét.test.formula
: vejamethods("t.test")
. Essa função (args(stats:::t.test.default)
) está esperando um argumento nomeadox
e não consegue encontrá-lo ... (ela gera um erro na primeira vez que o valor dex
é avaliado)