¿Cómo puedo saber cuándo mi conjunto de datos en R va a ser demasiado grande?


Voy a llevar a cabo algunos análisis de archivos de registro en R (a menos que no pueda hacerlo en R), y entiendo que mis datos deben caber en RAM (a menos que use algún tipo de solución como una interfaz para un almacén de keyval, tal vez?). Así que me pregunto cómo decir con anticipación cuánto espacio ocuparán mis datos en RAM, y si tendré suficiente. Sé cuánta RAM tengo (no una gran cantidad - 3GB bajo XP), y sé cuántas filas y cols mi archivo de registro terminará como y qué tipos de datos el entradas col debe ser (que presumiblemente tengo que comprobar como se lee).

¿Cómo puedo poner esto junto en una decisión go/nogo para llevar a cabo el análisis en R? (Presumiblemente R necesita ser capaz de tener algo de RAM para hacer operaciones, así como la celebración de los datos!) Mi salida requerida inmediata es un montón de estadísticas de resumen simple, frecuencias, contingencias, etc, y por lo que probablemente podría escribir algún tipo de analizador / tabulador que me dará la salida que necesito a corto plazo, pero también quiero juega con muchos enfoques diferentes para estos datos como el siguiente paso, así que estoy mirando la viabilidad de usar R.

He visto un montón de consejos útiles sobre grandes conjuntos de datos en R aquí, que he leído y releído, pero por ahora me gustaría entender mejor cómo averiguar si debo (a) ir allí a todos, (b), pero esperar a tener que hacer algunas cosas extras para hacer manejable, o (c) huir antes de que sea demasiado tarde y hacer algo en algún otro idioma / ambiente (sugerencias bienvenidas...!). ¡Gracias!

Author: Paul Hiemstra, 2012-10-07

1 answers

R es muy adecuado para grandes conjuntos de datos, ya sea utilizando soluciones listas para usar como bigmemory o el paquete ff (especialmente read.csv.ffdf) o procesando sus cosas en trozos utilizando sus propios scripts. En casi todos los casos, un poco de programación hace que el procesamiento de grandes conjuntos de datos (>> memoria, digamos 100 Gb) sea muy posible. Hacer este tipo de programación por ti mismo toma algún tiempo para aprender (no se tu nivel), pero te hace muy flexible. Si esta es su taza de té, o si necesita correr depende de la tiempo que desea invertir en el aprendizaje de estas habilidades. Pero una vez que los tenga, harán su vida como analista de datos mucho más fácil.

Con respecto al análisis de archivos de registro, sé que las páginas de estadísticas generadas a partir de Call of Duty 4 (computer multiplayer game) funcionan analizando el archivo de registro iterativamente en una base de datos, y luego recuperando las estadísticas por usuario de la base de datos. Vea aquí para un ejemplo de la interfaz. El enfoque iterativo (en trozos) significa que el tamaño del archivo de registro es (casi) ilimitado. Sin embargo, obtener un buen rendimiento no es trivial.

Muchas de las cosas que puedes hacer en R, puedes hacerlo en Python o Matlab, incluso en C++ o Fortran. Pero solo si esa herramienta tiene soporte listo para usar para lo que desea, podría ver una clara ventaja de esa herramienta sobre R. Para procesar datos grandes, consulte la vista de Tareas HPC. Véase también una respuesta anterior de min para leer un archivo de texto muy grande en trozos. Otros enlaces relacionados que podrían ser interesantes para usted:

Con respecto a la elección de R o alguna otra herramienta, yo diría que si es lo suficientemente bueno para Google es lo suficientemente bueno para mí ;).

 41
Author: Paul Hiemstra,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:26:04