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

R Discussion :

Numérotation des lignes d'un texte


Sujet :

R

  1. #1
    Membre du Club
    Homme Profil pro
    touristepationné
    Inscrit en
    Janvier 2012
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : touristepationné
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 132
    Points : 57
    Points
    57
    Par défaut Numérotation des lignes d'un texte
    Bonjour,

    J'aimerais numéroter les lignes de mon texte de longueurs variables, comment faire?

    Merci par avance.

    ++

  2. #2
    Membre habitué
    Homme Profil pro
    Analyste
    Inscrit en
    Février 2012
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste

    Informations forums :
    Inscription : Février 2012
    Messages : 62
    Points : 143
    Points
    143
    Par défaut
    Bonjour,

    C'est sûrement possible!
    Mais une explication un peu plus approfondie de ce que tu voudrais obtenir exactement (avec pourquoi pas un exemple) devrait nous aider à mieux cerner le problème

    Mais numéroter des lignes ne devrait pas poser trop de problèmes.
    Rien qu'en disant ça j'ai peut-être réveillé des problèmes endormis...

    A plus tard.

  3. #3
    Membre du Club
    Homme Profil pro
    touristepationné
    Inscrit en
    Janvier 2012
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : touristepationné
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 132
    Points : 57
    Points
    57
    Par défaut
    Ok, voici un texte de quelques lignes:
    La liberté consiste à pouvoir faire tout ce qui ne nuit pas à autrui : ainsi \t l’exercice des droits naturels de chaque homme n’a de bornes que celles qui \t assurent aux autres Membres de la Société, la jouissance de ces mêmes \t droits. Ces bornes ne peuvent être déterminées que par la Loi.

    J'ai rajouté manuellement les "\t " pour faire plus concret mais j'ignore si c'était necessaire... Bref, apres avoir tapé un petit code, j'aimerais obtenir ce résultat:

    1La liberté consiste à pouvoir faire tout ce qui ne nuit pas à autrui : ainsi \t 2l’exercice droits naturels de chaque homme n’a de bornes que celles qui \t 3assurent aux autres Membres de la Société, la jouissance de ces mêmes \t 4droits. Ces bornes ne peuvent être déterminées que par la Loi.

    J'insiste bien sur le fait que je ne connais pas à l'avance le nombre de lignes du texte.

    Suis-je plus clair?

  4. #4
    Membre habitué
    Homme Profil pro
    Analyste
    Inscrit en
    Février 2012
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste

    Informations forums :
    Inscription : Février 2012
    Messages : 62
    Points : 143
    Points
    143
    Par défaut
    Bonjour,

    Bien assez clair !
    Si le découpage des phrases se fait à partir d'une chaîne de caractères fixe (comme le \t ici) il y a la fonction stsplit() qui découpe une chaine à chaque fois qu'elle rencontre la balise souhaitée:

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    #Notre phrase:
     az <- "La liberté consiste à pouvoir faire tout ce qui ne nuit pas à autrui : ainsi \t l’exercice des droits naturels de chaque homme n’a de bornes que celles qui \t assurent aux autres Membres de la Société, la jouissance de ces mêmes \t droits. Ces bornes ne peuvent être déterminées que par la Loi. "
     
    az #On l'affiche
    [1] "La liberté consiste à pouvoir faire tout ce qui ne nuit pas à autrui : ainsi \t l’exercice des droits naturels de chaque homme n’a de bornes que celles qui \t assurent aux autres Membres de la Société, la jouissance de ces mêmes \t droits. Ces bornes ne peuvent être déterminées que par la Loi. "
     
     strsplit(az,"\t") #Découpée
    [[1]] #Attention c'est une liste
    [1] "La liberté consiste à pouvoir faire tout ce qui ne nuit pas à autrui : ainsi "
    [2] " l’exercice des droits naturels de chaque homme n’a de bornes que celles qui "
    [3] " assurent aux autres Membres de la Société, la jouissance de ces mêmes "      
    [4] " droits. Ces bornes ne peuvent être déterminées que par la Loi. "             
     
    > unlist(strsplit(az,"\t"))#Ce n'est plus une liste mais une data.frame
    [1] "La liberté consiste à pouvoir faire tout ce qui ne nuit pas à autrui : ainsi "
    [2] " l’exercice des droits naturels de chaque homme n’a de bornes que celles qui "
    [3] " assurent aux autres Membres de la Société, la jouissance de ces mêmes "      
    [4] " droits. Ces bornes ne peuvent être déterminées que par la Loi. "             
    >
    Et le tableau est numéroté par ligne.
    Résultat obtenu ?

    Bonne journée et à bientôt

  5. #5
    Membre du Club
    Homme Profil pro
    touristepationné
    Inscrit en
    Janvier 2012
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : touristepationné
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 132
    Points : 57
    Points
    57
    Par défaut
    Code entré:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    az <- "La liberté consiste à pouvoir faire tout ce qui ne nuit pas à autrui : ainsi \t l’exercice des droits naturels de chaque homme n’a de bornes que celles qui \t assurent aux autres Membres de la Société, la jouissance de ces mêmes \t droits. Ces bornes ne peuvent être déterminées que par la Loi. "
    az #On l'affiche
    azer<-strsplit(az,"\t") #Découpée
    write(azer,"testazer.txt")
    Resultat obtenu:

    Erreur dans cat(list(...), file, sep, fill, labels, append) :
    argument 1 (type 'list') pas encore traité par cat



    Une liste ne peut pas s'enregistrer avec write?

  6. #6
    Membre habitué
    Homme Profil pro
    Analyste
    Inscrit en
    Février 2012
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste

    Informations forums :
    Inscription : Février 2012
    Messages : 62
    Points : 143
    Points
    143
    Par défaut
    Re,

    Oui c'est ça, une liste ne peut pas s'enregistrer avec un simple write.
    Chaque élément de la liste est géré séparément des autres, pour enregistrer le résultat 2 options:
    - Faire une boucle qui enregistre chaque élément de la liste dans un fichier
    (d'abord le premier, puis le deuxième, etc) --> Du coup ne pas oublier l'argument append=T
    - Utiliser unlist() pour repasser en vecteur et la tout peut être enregistré d'un coup.

    Bonne journée

  7. #7
    Membre du Club
    Homme Profil pro
    touristepationné
    Inscrit en
    Janvier 2012
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : touristepationné
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 132
    Points : 57
    Points
    57
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    az <- "La liberté consiste à pouvoir faire tout ce qui ne nuit pas à autrui : ainsi \t l’exercice des droits naturels de chaque homme n’a de bornes que celles qui \t assurent aux autres Membres de la Société, la jouissance de ces mêmes \t droits. Ces bornes ne peuvent être déterminées que par la Loi. "
    az #On l'affiche
    az<-strsplit(az,"\t") #Découpée
    az<-unlist(az)
    write(az,"testaz.txt")
    Les numéros des lignes s'affichent sous r mais ne figurent pas dans le fichier "testaz.txt"

  8. #8
    Membre du Club
    Homme Profil pro
    touristepationné
    Inscrit en
    Janvier 2012
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : touristepationné
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 132
    Points : 57
    Points
    57
    Par défaut
    En data frame ça marche parfaitement, merci!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    az <- "La liberté consiste à pouvoir faire tout ce qui ne nuit pas à autrui : ainsi \t l’exercice des droits naturels de chaque homme n’a de bornes que celles qui \t assurent aux autres Membres de la Société, la jouissance de ces mêmes \t droits. Ces bornes ne peuvent être déterminées que par la Loi. "
    az #On l'affiche
    az<-unlist(strsplit(az,"\t"))#Ce n'est plus une liste mais une data.frame
    write.table(az,file = "Testaz.txt")

  9. #9
    Membre habitué
    Homme Profil pro
    Analyste
    Inscrit en
    Février 2012
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste

    Informations forums :
    Inscription : Février 2012
    Messages : 62
    Points : 143
    Points
    143
    Par défaut


    Content d'avoir pu aider.
    N'oublie pas de clôturer le sujet si tout est bon.

    A bientôt,

    Guinue

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Numérotation des lignes
    Par jcdidier dans le forum iReport
    Réponses: 2
    Dernier message: 27/03/2007, 09h43
  2. Numérotation des lignes dans une requête
    Par zoom61 dans le forum Access
    Réponses: 5
    Dernier message: 24/10/2006, 10h35
  3. Numérotation des lignes de code
    Par charleshbo dans le forum Access
    Réponses: 5
    Dernier message: 15/03/2006, 14h11
  4. [XSLT] numérotation des lignes du tableau résultat
    Par nemya dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 02/02/2006, 09h48
  5. numérotation des lignes ...
    Par HellGee dans le forum MFC
    Réponses: 2
    Dernier message: 29/03/2005, 10h21

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