Bonjour a tous,
Je travaille dans le milieu des statistiques. Je travaille sur la base de donnée suivante :
1 2 3 4 5 6 7 8 9
|
|-----+-----+-------+
|Name |Age |Gender |
|-----+-----+-------|
|Marc |32 |M |
|Isa |36 |F |
|Lea |35 |F |
|Lee |31 |M |
|-----+-----+-------| |
(en beaucoup plus gros bien sur).
Sur mon disque, elle est au format .csv. Elle est enregistrée sous forme de ligne.
"Name","Age","Gender"\n"Marc",32,"M"\n"Isa",36,"F"\n"Lea",35,"F"\n"Lee",31,"M"\OEF
Je souhaite la stocker en mémoire sous forme de colonne.
Marc Isa Lea Lee 32 36 35 31 M F F M
Savez-vous comment faire ca de manière efficace ? J’ai pensé à 3 méthodes :
- Première
- Lire la première ligne entièrement.
- Créer des vectors pour chaque colonne.
- Stocker les données au fur et a mesure de la lecture du fichier dans les vectors.
- De temps en temps, il faudra faire une recopie d’un vector, quand celui-ci est trop petit.
- Deuxième
- Lire la base intégralement une fois, pour connaitre le nombre de ligne et le nombre de colonne
- Créer en mémoire des tableaux de tailles adéquates.
- Lire ensuite la base de données une deuxième fois en remplissant les tableaux.
- Troisième
- Lire la base intégralement et la stocker en ligne.
- Puis faire des permutations entre les valeurs.
Laquelle serait la plus efficace ? A y-t-il une autre méthode encore plus efficace ?
Christophe
Partager