J'ai un fichier csv (très énorme) avec le format suivant.perl calculer la différence de colonnes dans le fichier csv
key1,val1,val2,val3... ,valn
key2,val2,val5,val1....,valn
...
...
keyn,val7,val9,val11....,valn
key1,val2,val4,val8.....,valn
key2,val10,val12,val14..., valn
...
...
keyn,val2,val4,val8.....,valn
key1,val3,val5,val7... ,valn
key2,val0,val9,val3....,valn
key1 à keyn (et leurs valeurs) se répète plusieurs fois dans le fichier csv.
Les valeurs (val1, valn) sont doubles (flottant).
ce que je veux imprimer:
1) Dès le début du fichier, pour chaque clé que je veux calculer la différence entre les valeurs de colonne (val2, Val4, VAL6 par exemple) à l'apparition prochaine de la clé .
donc par exemple
key1,2,4,6
key2,3,5,7
...
...
key1,4,6,8
key2,4,6,8
Je veux imprimer
key1: Diff de précédent record est key1,2,2,2 key2: Diff de précédent record est key2,1,1, 1 ..
keyn: Diff de disque précédent est ...........
2) est-ce que ce à plusieurs reprises pour les occurrences consécutives chacune o f chaque touche.
Voici ce que je suis venu à (stocker des valeurs en hachage)
#!/usr/bin/perl
my %hash;
open my $fh, '<', 'file1.csv' or die "Cannot open: $!";
while (my $line = <$fh>) {
$line =~ s/\s*\z//;
my @array = split /,/, $line;
my $key = shift @array;
$hash{$key} = \@array;
}
close $fh;
désolé ... pour le mauvais id - :) c'était rapide post ... j'ai une adresse e-mail valide –
@mystery_man Je suppose que vous êtes en bonne compagnie http://en.wikipedia.org/wiki/Austin_Powers:_International_Man_of_Mystery Plus important encore, vous n'avez pas bien expliqué votre problème. –
Cela me semble familier. Devoirs? –