2012-06-02 21 views
5

En R, encuentro que las listas son estructuras útiles (como los diccionarios en Python). Me encontré con el paquete hash que parece proporcionar una funcionalidad muy similar.Diferencias entre hash y listas en R

¿Existen diferencias prácticas entre las listas y los hashes que hacen que uno sea más deseable que el otro? (Aparte de las listas son parte de la base)

Espero que esto no sea demasiado abierto, pero no estoy seguro de cómo limitar el alcance de esto.

+0

También puede usar $ accessor en las listas. – Hansi

+0

@Hansi: Tiene razón, lo probé y no funcionó ... al parecer incorrectamente ... –

+0

No se puede hablar en favor de la biblioteca 'hash' pero la creación de una tabla hash con un nuevo entorno puede dar un impulso de velocidad enorme, particularmente para un diccionario grande. –

Respuesta

5

de la documentación hash:

DE PASO POR REFERENCIA. Los entornos y hash son objetos especiales en R porque solo existe una copia global. Cuando se proporciona como argumento a una función, no se realiza ninguna copia local y cualquier cambio al hash en las funciones se refleja globalmente.

PERFORMANCE. Los valores hash se basan en entornos y están diseñados para ser extremadamente rápidos utilizando la tabla interna hash de entornos . Para estructuras de datos pequeñas, una lista superará a un hash en casi todos los casos. Para una estructura de datos más grande , es decir,> 100-1000 pares de valores clave, el rendimiento del hash se vuelve más rápido. Mucho más allá de eso, el rendimiento del hash far supera a las listas nativas.