IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

Extraire et travailler sur les données d'UNE colonne particulière sous PERL


Sujet :

Langage Perl

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Extraire et travailler sur les données d'UNE colonne particulière sous PERL
    Bonjour, je bloque sur la première question d'un exercice dont l'énoncé est le suivant :

    Vous disposez d'un fichier contenant > 500 000 entrée et composé de 11 colonnes (forest_covertype.tsv) ; la dernière colonne code numériquement le type de couverture forestière rencontrée sur différents terrains ; vous disposez d'un deuxième fichier (forest_cover-type_companion-infos.txt) contenant l'équivalence entre le numéro de code et le type de couverture
    - écrivez un programme (forest_analyse.pl) permettant d'obtenir la fréquence de chaque type de couverture forestière dans le fichier de données (la couverture forestière se trouve en colonne 11)

    Je ne saisis pas comment pouvoir travailler sur une seule colonne parmi les 11 présentes et ainsi pouvoir réussir à afficher ce qu'il m'est demandé. Je travaille sur Komodo.

    Merci d'avance

  2. #2
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 298
    Points : 12 778
    Points
    12 778
    Par défaut
    Bonjour et Bienvenue,

    Ton exercice est:
    -Ouvrir le fichier
    -boucler sur chaque ligne pour récupérer le champs 11 et en faire quelque chose.
    -fermer le fichier

    En exemple, prenons un fichier de 2 colonne et affichons la 2ème colonne:
    Le fichier /tmp/col.tsv ressemble à:
    Le bout de code perl:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    open(my $fh, "<", "/tmp/col.tsv") or die $!
    while(<$fh>){
      my @XX=split(/\t/)
      print $XX[1]
    }
    close($fh)'
    ce qui affichera:
    Cordialement.

  3. #3
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 256
    Points
    12 256
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    dans ce cas, comme on s'intéresse à la dernière colonne de la ligne, il est sans doute plus sûr pour la suite de commencer par retirer les caractères de fin de ligne. Par ailleurs, comme il faut faire une sorte d'histogramme des différentes couvertures forestières, il est utile de déclarer avant de commencer un hachage (ou à la rigueur un tableau, cela dépend du codage numérique des types de couvertures forestières) contenant la fréquence d'apparition pour chaque couverture.

    Cela peut donner quelque chose comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    my %frequences;                                    # déclaration du hachage de compteurs (histogramme)
    my $infile = "path_to/forest_covertype.tsv";
    open my $FH, "<", $infile or die "Ouverture impossible de $infile $!";
    while (my $line = <$FH>) {
        chomp $line;                                   # retirer les caractères de fin de ligne
        my $couverture  = (split /\t/, $line)[10];     # splitte la ligne et récupère le 11ème champ
        $frequences{$couverture}++;                    # on incrémente le compteur correspondant à cette couverture
    }
    close $FH;
    Il te reste à lire l'autre fichier afin d'établir une table de correspondance entre le code de la couverture forestière et son libellé, puis d'afficher ton résultat.

  4. #4
    Membre actif Avatar de olivier1969
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Novembre 2013
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 151
    Points : 208
    Points
    208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $couverture  = (split /\t/, $line)[-1];
    récupérera la dernière colonne , quelque soit le nombre de colonnes

Discussions similaires

  1. Zoomer sur les données d'une couche
    Par Unusual dans le forum IGN API Géoportail
    Réponses: 2
    Dernier message: 02/09/2009, 17h23
  2. Recherche sur les données d'une ListView
    Par malayika dans le forum Windows Forms
    Réponses: 0
    Dernier message: 02/04/2009, 15h57
  3. Réponses: 12
    Dernier message: 06/12/2008, 14h38
  4. [MySQL] Statistiques sur les données d'une table
    Par jeanmi68 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 02/07/2008, 10h59
  5. Travail sur les éléments d'une matrice.
    Par Jefeh dans le forum MATLAB
    Réponses: 6
    Dernier message: 12/11/2007, 15h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo