Bonjour à tous,
J'ai des données sous cette forme :
Que je place dans un array de array.Citation:
Source.Name Characteristics.Subject.ID. Characteristics.Strain. Sample.Name
atenolol_3_1000_1 102599 RATM Rattus norvegicus
atenolol_3_1000_2 102613 RATM Rattus norvegicus
atenolol_3_1000_3 102633 RATM Rattus norvegicus
$tab[$i][$j]
Par exemple :
siCode:
1
2
3
4 @{$tab[0]} = ('Source.Name', 'Characteristics.Subject.ID.', 'Characteristics.Strain.', 'Characteristics.Organism.'); @{$tab[1]} = ('atenolol_3_1000_1', '102599', 'RATM', 'Rattus norvegicus'); @{$tab[2]} = ('atenolol_3_1000_2', '102613', 'RATM', 'Rattus norvegicus'); @{$tab[3]} = ('atenolol_3_1000_3', '102633', 'RATM', 'Rattus norvegicus');
je veux que mon array de array soit réorganisé ainsi :Code:my @order = ('Characteristics.Strain.', 'Source.Name', 'Characteristics.Organism.', 'Characteristics.Subject.ID.');
Les valeurs excédentaires, ne se trouvant pas dans @order, doivent être supprimées. @{$tab[1]} aura la même taille que @order et sera plus petite que sa taille initiale.Code:
1
2
3
4 @{$tab[0]} = ('Characteristics.Strain.', 'Source.Name', 'Characteristics.Organism.', 'Characteristics.Subject.ID.'); @{$tab[1]} = ('RATM', 'atenolol_3_1000_1', 'Rattus norvegicus' , '102599'); @{$tab[2]} = ('RATM', 'atenolol_3_1000_2', 'Rattus norvegicus', '102613'); @{$tab[3]} = ('RATM', 'atenolol_3_1000_3', 'Rattus norvegicus', '102633');
Si ce n'est pas clair, n'hésitez pas à me poser des questions. Je vais continuer de regarder du côté de List::Compare et de List::MoreUtils ... et sort.
D'avance merci.
Voici mon code :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60 #!/usr/bin/perl use strict; use warnings; use WWW::Mechanize::Query; use Data::Dumper; my $mech = WWW::Mechanize::Query->new(); my $url= "ftp://ftp.ebi.ac.uk/pub/databases/microarray/data/dixa/DrugMatrix/archive/thighMuscle/s_thigh_muscle.txt"; $mech->get($url); my @orders = qw/Sample.Name Source.Name Characteristics.Subject.ID. Characteristics.Strain. Characteristics.Organism. Characteristics.Sex. Factor.Value.Age. Characteristics.AgeUnit. Characteristics.Organ. Characteristics.Tissue. Characteristics.Cell. Characteristics.Assay.Type. Characteristics.Biological.Replicate. Characteristics.Technical.Replicate. Factor.Value.Compound. Characteristics.StdInChIKey. Comment.chEMBL.ID. Characteristics.Eniantiomer. Characteristics.Compound.Class. Characteristics.Control. Characteristics.Sample.Match. Factor.Value.Dose. Characteristics.DoseUnit. Factor.Value.Dose.Duration. Characteristics.Dose.DurationUnit. Factor.Value.Dose.Frequency. Characteristics.Vehicle. Characteristics.Route. Factor.Value.Sample.TimePoint. Characteristics.Sample.TimePointUnit. Characteristics.Treatment.Group./; if ($mech->success()) { my ($file_name) = ($url =~ m/([^\/]*\.txt)/); print $file_name."\n"; my @data = split (/\n/, ${$mech}{'content'}); my @tab; foreach my $i (0..$#data){ @{$tab[$i]} = split (/\t/, $data[$i]); } print Dumper @tab; }