Estoy tratando de crear un programa para contar los diferentes valores que se producen en una columna de un archivo de datos. Por lo tanto, sería algo así como, si los valores posibles de una columna son A, B, C. La salida es algo así comoEn Perl, ¿cómo puedo ordenar por frecuencia de un valor?
A 456
B 234
C 344
he sido capaz de obtener los recuentos de funcionamiento de A, B y C con facilidad haciendo algo como esto
my %count;
for my $f (@ffile) {
open F, $f || die "Cannot open $f: $!";
while (<F>) {
chomp;
my @U = split//;
$count{$U[2]}++;
}
}
foreach my $w (sort keys %count) {
printf $w\t$count{$w};
}
Por ejemplo, aquí estoy contando la segunda columna del archivo en el camino dado.
¿Cómo puedo ordenar la salida del printf por las cuentas en lugar de las teclas (o los valores de A, B, C) para obtener -
A 456
C 344
B 234
[perldoc -f printf] (http://perldoc.perl.org/functions/printf.html): No caiga en la trampa de usar un "' printf' "cuando un simple" 'print'" haría. El "' print' "es más eficiente y menos propenso a errores. –