Página 1 de 1

De dos columnas a matriz

NotaPublicado: 2019-06-09 15:05 @670
por abraham03
Hola, buenos días. Soy un poco nuevo en Perl, y quería saber cómo le hago para convertir un archivo que tiene dos columnas asociadas:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Names   SampleA   Names   SampleB   Names   SamplesC
Name1        5           Name3         7          Name1         8
Name2        9           Name2         1          Name2         2
Name4        4           Name4         8          Name3         8
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

En este caso solo son tres datos asociados (3 muestras), es decir, 6 columnas, pero podrían ser múltiples.

Lo que quiero es una matriz, con la primera columna con todos los nombres filtrados para no tener duplicados, y la primera fila con el nombre de las muestras.

Si una muestra (ejemplo SampleB) no contiene un nombre (Name1) se le agregará cero:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Names     SampleA     SampleB    SampleC
Name1          5                   0                 8
Name2         9                    1                 2
Name3         0                    7                8
Name4         4                    8                0
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

¿Alguna sugerencia? Lo he intentado de varias maneras pero ¡¡¡no he podido lograr realizar la matriz!!!

¡Muchas gracias!

Re: De dos columnas a matriz

NotaPublicado: 2019-06-09 17:23 @766
por explorer
Hola, abraham03.

Puedes ir leyendo por líneas, y guardar los valores en un hash de dos dimensiones. La primera dimensión es el nombre. Y la segunda dimensión es el nombre del sample.

Lo que queda después es sacar el hash de forma ordenada: haces un bucle externo para recorrer por nombre, y luego otro bucle más interno por los nombres de las muestras.

Publica algún intento tuyo, y te vamos diciendo.