2016-04-12 1 views
-2

J'ai un fichier .csv avec 1009725 lignes et 85 colonnes. J'essaie de le lire avec Microsoft R ouvert. J'ai utilisé la commande suivante,Problèmes de performances dans R

data= read.csv("C:/Users/username/Desktop/data.csv") 

Mais le nombre de lignes qui est lu sont seulement 617200 (~ 65%). Je ne suis pas sûr de la raison pour laquelle le fichier n'est pas complètement lu. Les colonnes de données sont pour la plupart des entiers comme des ID, des valeurs et certains d'entre eux ont du texte. Quelqu'un peut-il m'aider à diagnostiquer le problème?

Même pour les lignes 617200, j'ai tellement de problèmes de performance. Même la commande de base telle que

nrow(data) ou length(unique(data$column1)) met l'état Rstudio à Non-réponse. La configuration de mon système est de 16 Go de RAM et de processeur quad core i7. Je pense que cela devrait être suffisant pour croquer ces données. Mais pourquoi ne suis-je pas capable d'exécuter même les commandes de base des données partielles qui sont lues? Quelqu'un peut-il m'aider à diagnostiquer les deux problèmes?

Merci

+0

ne pas assez d'informations: Les données sont numériques ou texte? Quels autres programmes sont en cours d'exécution dans le backgr Quel système d'exploitation? (Et _S'il vous plaît ne pas utiliser de commentaires pour clarifier les questions.) Et avez-vous fait une recherche dans SO par exemple: "[r] problèmes de performance" –

+0

Est-ce que cela persiste dans une nouvelle session R vide? – Heroka

+0

@ 42- J'ai ajouté les types de données. Les applications d'arrière-plan sont Outlook et Chrome uniquement. J'ai cherché quelques-uns et essayé de régler quelques paramètres sans beaucoup d'utilité. – haimen

Répondre

1

Ajout d'un paramètre colClasses à un appel read.csv est susceptible d'améliorer la vitesse. Plusieurs autres réponses utiles apparaissent dans Quickly reading very large tables as dataframes in R.

je trouve utile d'utiliser avec différents arguments à la comment.char (valeur par défaut est "#") et les arguments de citation (par défaut est "\ de" ") en utilisant count.fields:

table(count.fields("C:/Users/username/Desktop/data.csv", 
          comment.char="", quote="", sep=",")) 

Le emballage table empêche une longue chaîne d'entiers et résume la cohérence de vos structures en ligne Après avoir identifié les lignes avec des problèmes (comme une ligne courte avec seulement 30 caractères), vous pouvez le faire.

which(count.fields("C:/Users/username/Desktop/data.csv", 
          comment.char="", quote="", sep=",") == 30)