Bonjour,
J'aimerais numéroter les lignes de mon texte de longueurs variables, comment faire?
Merci par avance.
++
Bonjour,
J'aimerais numéroter les lignes de mon texte de longueurs variables, comment faire?
Merci par avance.
++
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.
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?
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 :
Et le tableau est numéroté par ligne.
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 lexercice des droits naturels de chaque homme na 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 lexercice des droits naturels de chaque homme na 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] " lexercice des droits naturels de chaque homme na 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] " lexercice des droits naturels de chaque homme na 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. " >
Résultat obtenu ?
Bonne journée et à bientôt
Code entré:
Resultat obtenu:
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 lexercice des droits naturels de chaque homme na 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")
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?
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
Les numéros des lignes s'affichent sous r mais ne figurent pas dans le fichier "testaz.txt"
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 lexercice des droits naturels de chaque homme na 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")
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 lexercice des droits naturels de chaque homme na 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")
Content d'avoir pu aider.
N'oublie pas de clôturer le sujet si tout est bon.
A bientôt,
Guinue
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager