[PERL] Création tableau 2D dynamique indicé
trashvip
Messages postés
27
Date d'inscription
Statut
Membre
Dernière intervention
-
trashvip Messages postés 27 Date d'inscription Statut Membre Dernière intervention -
trashvip Messages postés 27 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voici mon souci :
Je souhaite créer un tableau 2D dynamique.
Mes données d'entrée sont issu d'un fichier "a.txt" qui contient un ensemble d'éléments (2 colonnes) comme suit: plusieurs séries de données dont la première colonne (A) est aléatoirement redondantes
etc....
Je souhaite remplir un tableau avec en "abscisse" le temps (temps 1 = première série, temps 2 = seconde série, etc....) et en ordonnée les noms des éléments comme H1, H2...CL7 sans doublon.
==>i.e : ajouter un élément à un nouveau tableau ssi il n'existe pas déjà dans ce "nouveau" tableau. Si il n'existe pas, le créer en bas de tableau.
Le problème est le suivant : comment remplir ce tableau indicé sans qu'il y ait de doublon et en ajoutant les valeurs au bon temps correspondant ?
Pour cet exemple, mon tableau de sortie devrait être comme suit :
Colonne A = noms
Colonne B = temps 1
Colonne C = temps 2
Pouvez-vous m'aider pleazzz !!!??
J'espère avoir été clair (?), n'hésitez pas à me demander des précisions....
Merci d'avance.
Voici mon souci :
Je souhaite créer un tableau 2D dynamique.
Mes données d'entrée sont issu d'un fichier "a.txt" qui contient un ensemble d'éléments (2 colonnes) comme suit: plusieurs séries de données dont la première colonne (A) est aléatoirement redondantes
A B ------------ H1 5.34 H2 6.56 He4 8.99 He5 7.54 CL7 6.03 Br9 0.04
<== ligne vide délimitant le temps n°2
H2 9.44 H3 5.21 He5 1.11 CL7 4.69
<== ligne vide délimitant le temps n°3
etc....
Je souhaite remplir un tableau avec en "abscisse" le temps (temps 1 = première série, temps 2 = seconde série, etc....) et en ordonnée les noms des éléments comme H1, H2...CL7 sans doublon.
==>i.e : ajouter un élément à un nouveau tableau ssi il n'existe pas déjà dans ce "nouveau" tableau. Si il n'existe pas, le créer en bas de tableau.
Le problème est le suivant : comment remplir ce tableau indicé sans qu'il y ait de doublon et en ajoutant les valeurs au bon temps correspondant ?
Pour cet exemple, mon tableau de sortie devrait être comme suit :
A B C D ----------------------------- H1 5.34 H2 6.56 9.44 He4 8.99 He5 7.54 1.11 CL7 6.03 4.69 Br9 0.04 H3 5.21
Colonne A = noms
Colonne B = temps 1
Colonne C = temps 2
Pouvez-vous m'aider pleazzz !!!??
J'espère avoir été clair (?), n'hésitez pas à me demander des précisions....
Merci d'avance.
A voir également:
- [PERL] Création tableau 2D dynamique indicé
- Tableau croisé dynamique - Guide
- Tableau word - Guide
- Exemple tableau croisé dynamique télécharger - Télécharger - Tableur
- Tableau ascii - Guide
- Indice téléphonique - Guide
2 réponses
hello
et avec awk ?
et avec awk ?
$ cat a1 H1 5.34 H2 6.56 He4 8.99 He5 7.54 CL7 6.03 Br9 0.04 H2 9.44 H3 5.21 He5 1.11 CL7 4.69 $ awk 'BEGIN{split("A,B,C,D,E,F,G,H",l,",")};NF {x[$1]=x[$1] "\t" $2;z[$1]++};END{a=0;for(n in x){if(z[n]>a)a=z[n]};for(b=1;b<=a+1;b++)printf l[b] "\t";print "";for(b=1;b<=a+1;b++)printf "--------";print ""; for(n in x) print n,x[n]}' a1 A B C ------------------------ He4 8.99 He5 7.54 1.11 Br9 0.04 H1 5.34 H2 6.56 9.44 H3 5.21 CL7 6.03 4.69 $