• Publicidad

Extraer datos de una tabla Excel

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Extraer datos de una tabla Excel

Notapor manuel3180 » 2012-05-10 15:10 @674

¡¡¡Muy buenas tardes a todos, espero puedan ayudarme!!!

Muchas veces, después de un proceso bioinformático obtenemos una gran cantidad de resultados. Estos resultados los llevamos a una hoja Excel para un mejor manejo. Además, no todos los resultados nos interesan, entonces necesitamos realizar una extracción de forma manual; pero esto es una pérdida de tiempo, cuando hablamos de una gran cantidad de datos (más o menos 1000).

Por ejemplo, supongamos que es una hoja Excel, cada columna significa un valor para cada individuo.

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
      A             B            C      D
    Nombre      Apellido       Numero Casilla
                       
1.  Manuel      Ramirez         123     4
2.  Hugo        Valdivia        345     7
3.  David       Requena         567     8
4.  Michael     Torres          666     9
5.  Hugo        Valdivia        789     5
6.  Hugo        Valdivia        987     3
7.  Roberto     Lozano          434     1
8.  Manuel      Ramirez         654     2
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Como verán, algunas veces se repite la primera columna pero los valores restantes son diferentes. Entonces, yendo al grano del asunto... quisiera poder utilizar un script en Perl que me permita extraer las filas que se repitan en la primera columna manteniendo los resultados de las demás columnas, de la siguiente forma:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Hugo    Valdivia        345     7
Hugo    Valdivia        789     5
Hugo    Valdivia        987     3

Manuel  Ramirez         123     4
Manuel  Ramirez         654     2
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


¿Es posible? Se los agradecería ya que me ahorraría un montón de tiempo.

P.D. Es para una gran cantidad de datos, es decir puedo tener valores repetidos como los que no... ¿Tendría que eliminar los que no se repiten? ¡¡HELP!!
manuel3180
Perlero nuevo
Perlero nuevo
 
Mensajes: 11
Registrado: 2011-11-27 23:43 @030

Publicidad

Re: Extraer datos de una tabla Excel

Notapor explorer » 2012-05-10 18:24 @808

Un momento, un momento...

¿Que se genera una información y la pasáis a Excel, y ahora queréis sacar información de la hoja Excel?

¿No sería más cómodo sacar a Excel de la ecuación, y extraer la información que nos interesa directamente desde la información generada?

En cuanto a la pregunta, la respuesta es claramente sí.

Supongamos que en vez de Excel tenemos un archivo de texto así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Manuel      Ramirez         123     4
Hugo        Valdivia        345     7
David       Requena         567     8
Michael     Torres          666     9
Hugo        Valdivia        789     5
Hugo        Valdivia        987     3
Roberto     Lozano          434     1
Manuel      Ramirez         654     2
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. my %datos;
  3.  
  4. open my $FH, '<', 'kk.txt';
  5.  
  6. while (my $linea = <$FH>) {
  7.     my($nombre) = split " ", $linea;            # sacamos el $nombre
  8.     push @{ $datos{$nombre} }, $linea;          # guardamos la $linea,
  9.                                                 # acumulando según el $nombre
  10. }
  11.  
  12. close $FH;
  13.  
  14. for my $nombre (sort keys %datos) {                   # para cada $nombre encontrado
  15.     my @nombres_repetidos = @{ $datos{$nombre} };     # cuántas veces se repite
  16.     if (@nombres_repetidos > 1) {                     # si es más de 1
  17.         for my $dato_repetido (@nombres_repetidos) {  # para cada una de sus repeticiones
  18.             print $dato_repetido;                     # sacamos la línea en pantalla
  19.         }
  20.     }
  21. }
  22.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
sale
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Hugo        Valdivia        345     7
Hugo        Valdivia        789     5
Hugo        Valdivia        987     3
Manuel      Ramirez         123     4
Manuel      Ramirez         654     2
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Extraer datos de una tabla Excel

Notapor manuel3180 » 2012-05-11 11:50 @534

Muchas gracias, explorer, ¡¡¡es cierto lo que dices!!! Creo que la desesperación nubló mis sentidos... Nuevamente muchísimas gracias y RECOMIENDO A TODOS ESTOS FOROS DE Perl EN ESPAÑOL: LAS RESPUESTAS SON CLARAS Y RÁPIDAS.
manuel3180
Perlero nuevo
Perlero nuevo
 
Mensajes: 11
Registrado: 2011-11-27 23:43 @030


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 15 invitados