Me preguntaba ¿cuáles son las diferencias entre los modos, clase y tipo de objetos R? El tipo de un objeto R se puede obtener mediante la función typeof (), modo por modo () y clase por clase ().
¿También otras funciones y conceptos similares que me perdí?
¡Gracias y saludos!
Respuestas:
El
class()
se utiliza para definir / identificar qué "tipo" es un objeto desde el punto de vista de la programación orientada a objetos en R. Así que parase utilizará cualquier función genérica que tenga un método "entero".
typeof()
da el "tipo" de objeto desde el punto de vista de R, mientras quemode()
da el "tipo" de objeto desde el punto de vista de Becker, Chambers y Wilks (1988). Este último puede ser más compatible con otras implementaciones de S de acuerdo con el manual de definición de lenguaje R.Probablemente me equivoque en el uso
typeof()
en la mayoría de los casos a menos que fuera para pasar objetos R al código compilado, dondestorage.mode()
será útil.Esto se discute útilmente en la definición del lenguaje R como se vincula a arriba.
fuente
<-
y=
para asignación variable.De: https://www.mail-archive.com/[email protected]/msg17169.html :
'modo' es una clasificación mutuamente excluyente de objetos según su estructura básica. Los modos 'atómicos' son numéricos, complejos, de caracteres y lógicos. Los objetos recursivos tienen modos como 'lista' o 'función' o algunos otros. Un objeto tiene uno y solo un modo.
'clase' es una propiedad asignada a un objeto que determina cómo funcionan las funciones genéricas con él. No es una clasificación mutuamente excluyente. Si un objeto no tiene asignada una clase específica, como un vector numérico simple, su clase suele ser la misma que su modo, por convención.
Cambiar el modo de un objeto a menudo se llama 'coerción'. El modo de un objeto puede cambiar sin cambiar necesariamente la clase.
fuente
La principal diferencia entre class y typeof es que el primero puede ser definido por el usuario, pero el tipo no. Por ejemplo, defina una lista
Dar un cierto nombre de clase a un objeto definido por el usuario es muy útil para escribir programas. Permite etiquetar objetos definidos por el usuario de manera similar a lo que sucede en los lenguajes de programación orientados a objetos.
fuente
R
documentación paratypeof
yclass
, la afirmación sobre "diferencia principal" es incorrecta.class
es un atributo de un objeto que puede asignarse independientemente de su modo de almacenamiento interno, mientras que "typeof determina el tipo (R interno) o el modo de almacenamiento de cualquier objeto". Uno describe una característica lógica mientras que el otro es una característica física de un objeto.