37 votes

Comment savoir si mon jeu de données dans R sera trop volumineux?

Je vais être certains journal d'analyses dans R (à moins que je ne peut pas faire dans R), et je comprends que mes données doit tenir en mémoire (à moins d'utiliser un moyen de le fixer comme une interface pour un keyval magasin, peut-être?). Donc, je me demande comment savoir à l'avance combien chambre de mes données est va prendre place dans la RAM, et si je vais avoir assez. Je sais combien de RAM que j'ai (pas une quantité énorme de 3 go sous XP), et je sais combien de lignes et colonnes de mon journal finira et les types de données et le col des entrées devrait être (et, probablement, j'ai besoin de vérifier qu'il lit).

Comment puis-je mettre cela dans un go/nogo décision pour la réalisation de l'analyse dans R? (Sans doute de R doit être en mesure d'avoir un peu de RAM pour faire des opérations, ainsi que la tenue de les données!) Ma immédiate de sortie requis est un tas de simple résumé statistiques, les fréquences, les éventualités, etc, et donc, je pourrais probablement écrire une sorte d'analyseur/tableur qui me donnera la sortie j'ai besoin à court terme, mais je veux aussi jouer avec beaucoup de différentes approches de ces données dans une prochaine étape, je suis à la recherche à la faisabilité de l'utilisation de R.

J'ai vu beaucoup de conseils utiles sur de grands ensembles de données dans R ici, que j'ai lu et relu, mais pour l'instant j'aimerais comprendre mieux comment savoir si je doit (a) y aller à tous, (b) y aller, mais attendez-vous à devoir faire quelques trucs supplémentaires pour le rendre gérable, ou (c) s'enfuir avant qu'il soit trop tard pour faire quelque chose dans un autre langage/environnement (suggestions bienvenues...!). merci!

41voto

Paul Hiemstra Points 28390

R est bien adapté pour les grands ensembles de données, soit à l'aide de dehors-de-le-boîte de solutions comme bigmemory ou la ff paquet (en particulier read.csv.ffdf) ou la transformation de votre stuff en gros morceaux à l'aide de vos propres scripts. Dans presque tous les cas, un peu de programmation du traitement de grands ensembles de données (>> de mémoire, de 100 Go) très possible. Faire ce genre de programmation vous-même prend un peu de temps pour apprendre (je ne connais pas ton niveau), mais qui vous rend vraiment flexible. Si c'est votre tasse de thé, ou si vous avez besoin d'exécuter dépend du temps que vous souhaitez investir dans l'apprentissage de ces compétences. Mais une fois que vous les avez, ils feront de votre vie en tant que analyste de données beaucoup plus facile.

En ce qui concerne l'analyse des fichiers de log, je sais que les stats des pages générées à partir de Call of Duty 4 (ordinateur de jeu multijoueur) de travail par l'analyse du fichier journal de manière itérative dans une base de données, puis de la récupération de la statsistics par l'utilisateur de la base de données. Voir ici pour un exemple de l'interface. L'itératif (en morceaux) approche signifie que la taille du fichier de log est (presque) illimité. Cependant, l'obtention de bonnes performances n'est pas trivial.

Un grand nombre de choses que vous pouvez faire dans R, vous pouvez le faire en Python ou Matlab, même en C++ ou Fortran. Mais seulement si cet outil a out-of-the-box " pour ce que vous voulez, j'ai pu constater un net avantage de cet outil sur R. Pour le traitement de grandes données, voir la CPS vue des Tâches. Voir aussi une précédente réponse de min pour la lecture d'un très gros fichier texte en morceaux. Autres liens connexes qui pourrait être intéressant pour vous:

En ce qui concerne le choix R ou un autre outil, je dirais que si c'est assez bon pour Google c'est bien assez pour moi ;).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X