Comportamiento extraño de == con fórmulas
Estoy un poco confundido con lo siguiente. Tengo dos fórmulas y me gustaría verificar si son iguales. Aquí espero obtener FALSE como resultado.
fm1 <- formula(schades ~ termijn + zipcode + provincie + regionvormgemeente + energielabel + trede)
fm2 <- formula(schades ~ termijn + zipcode + provincie + regionvormgemeente + energielabel)
fm1 == fm2
[1] TRUE
identical(fm1, fm2)
[1] FALSE
¿Cuál es la razón por la que fm1 == fm2
devuelve TRUE?
Creado el 2021-12-17 por el paquete reprex (v2.0.1)
davy.ai
La razón por la que
fm1 == fm2
devuelve TRUE es porque verifica si las dos fórmulas son sintácticamente iguales, lo que significa si tienen la misma estructura y todos sus componentes (variables, operadores y funciones) están en el mismo orden. Sin embargo,identical(fm1, fm2)
devuelve FALSE porque verifica si las dos fórmulas son exactamente el mismo objeto, incluyendo todos sus atributos (como sus entornos). Dado quefm1
yfm2
difieren en una variable (trede
), no son idénticas aunque sean sintácticamente iguales.