¿Cómo maneja R las operaciones en grandes conjuntos de datos?

Depende de qué tan grande. Todavía no he tenido que trabajar con un conjunto de datos demasiado grande para caber en la memoria, por lo que las sugerencias de Nilesh probablemente sean buenas desde ese punto de vista.

Sin embargo, me gustaría llamar su atención sobre la sección de paralelismo explícito en el mismo enlace que Nilesh proporcionó:
Vista de tareas de CRAN: alto rendimiento y computación paralela con R

Esto le permite usar CPU de múltiples núcleos o múltiples computadoras en red, y así hace que muchas operaciones sean varias veces más rápidas. A menudo uso el paquete “Foreach” que se basa en el paquete “paralelo”, ya que son muy fáciles de usar y permiten la comparación fácil de una operación dada en paralelo o en serie. Sin usar un paquete de computación paralela, R solo usará un núcleo de su CPU que puede ser muy ineficiente dado que la mayoría de las CPU modernas tienen 6 u 8 núcleos.

Una trampa muy importante para Big Data en R es tratar con marcos de datos. Muchas operaciones duplicarán el marco de datos en la memoria, lo que puede ser extremadamente lento, ineficiente y provocar errores de memoria. rbind () es un buen ejemplo de esto y, en consecuencia, es una buena práctica crear un marco de datos vacío y luego llenarlo fila por fila en lugar de rbind (), colocando nuevas filas en la parte inferior a medida que ingresan los datos. Allí son paquetes que mejoran esto, pero creo que a menos que sea un problema que encuentre a menudo, no vale la pena aprender la nueva notación, es mucho mejor aprender cómo ser más eficiente con su código R. Una buena solución alternativa en cuanto al rendimiento es utilizar matrices en lugar de marcos de datos, sin embargo, esto limita el contenido a un solo tipo. (y una solución parcial a este límite es utilizar el atributo “nombres” de una matriz para agregar etiquetas / nombres / claves a sus datos si, de lo contrario, todos son del mismo tipo)

¡Que te diviertas!

Para las operaciones en el núcleo, creo que ff es algo obsoleto. Su objetivo era superar el espacio de direcciones de 32 bits de R; es decir, ningún marco de datos o matriz podría tener más de 2 ^ 31 – 1 elementos. Desde R 3.0.0, el espacio de direcciones es de 64 bits, por lo que no existe un límite de lenguaje intrínseco para tener objetos grandes en RAM (aunque creo que R puede mantener dos copias en el mismo objeto en RAM a veces). bigmemory (CRAN – Package bigmemory) todavía tiene ventajas porque tiene búsquedas rápidas y operaciones adicionales en otros paquetes de la misma suite (como biganalytics y bigtabulate). Sin embargo, está limitado a matrices numéricas.

Además de los grandes datos que pueden procesarse de forma natural en forma paralela (para lo que se refiere a la Vista de computación paralela y de rendimiento mantenida por Dirk Eddelbuettel), recomendaría buscar en dplyr, que extrae el contenedor de datos y permite que el usuario se conecte y recuperar / resumir directamente fuentes de datos fuera del núcleo (se admiten Postgres y MonetDB, además de SQLlite y MySQL). Finalmente, he visto demostraciones de (pero no usado) SciDB para R. Extremadamente impresionante (p. Ej., Extraiga los 5 valores propios superiores de una matriz de 47K x 47K en cuestión de segundos). Requiere mantenimiento de un servidor SCIDB y es bastante complejo en comparación con las alternativas mencionadas aquí.

Paquetes como ff y bigmemory están diseñados para manejar grandes conjuntos de datos. Para más detalles puedes consultar
url: http://cran.r-project.org/web/views/HighPerformanceComputing.html
sección: memoria grande y datos sin memoria

More Interesting

¿Cuánta variedad hay en un puesto de ciencia de datos?

Tengo seis meses donde tengo que aprender Minería de datos y no hacer nada más. ¿Donde debería empezar?

Cómo ingresar a la genómica o la biología computacional como científico de datos

¿Cuál es la forma más eficiente de dominar rápidamente la tecnología de Big Data?

Me uní a una pequeña startup que trabaja en análisis de datos, y mi posición es analista de datos. ¿Qué tan prometedor es el futuro en el análisis de datos?

¿Puedo solicitar puestos de trabajo en Data Science si he aprendido el campo con MOOC?

¿Cuáles son los principales factores del big data?

¿Qué proyectos puedo hacer en R?

¿Qué estadística simple o técnica de ciencia de datos utilizó para obtener una visión interesante cuando se enfrentó a grandes cantidades de datos?

¿Cómo es útil la econometría tradicional como la que se enseña en los programas de posgrado en economía para los científicos de datos en la práctica?

¿Cuáles son algunos buenos problemas con los juguetes (un solo codificador puede hacer durante un fin de semana) en ciencia de datos? Estoy estudiando el aprendizaje automático y las estadísticas, y estoy buscando algo socialmente relevante utilizando conjuntos de datos / API disponibles públicamente.

¿Cuáles son algunas revisiones en el curso de ciencias de datos en el aula por EduPristine en Bangalore?

¿Cuál es la diferencia entre el curso de MSc Business Analytics y MSc Data Science en UCL? ¿Cuál es más adecuado para convertirse en un científico de datos?

¿Qué MOOC, proyecto en línea o curso relacionado con big data \ Hadoop debería agregar a mi currículum como una habilidad adicional, como analista de datos (en ciencia de datos)?

Ciencia de datos: ¿dónde encontrar ejemplos de proyectos usando Python con SQL?