[PERL] Création tableau 2D dynamique indicé
trashvip
Messages postés
28
Statut
Membre
-
trashvip Messages postés 28 Statut Membre -
trashvip Messages postés 28 Statut Membre -
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 word - Guide
- Tableau croisé dynamique - Guide
- Exemple tableau croisé dynamique télécharger - Télécharger - Tableur
- Indice téléphonique - Guide
- Trier un tableau excel - 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
$