Les posteurs les plus actifs de la semaine
Aucun utilisateur |
Sujets les plus vus
Uniformisation syntaxe variable texte
2 participants
Page 1 sur 1
Uniformisation syntaxe variable texte
Bonjour,
Je dispose d'un fichier texte dans lequel une variable peut prendre deux observations (disons "truc" et "machin"). Sachant que de nombreux traitements sont réalisés sur ce fichier, il faudrait impérativement que ces deux observations respectent une syntaxe unique.
L'idée est ici de procéder ainsi :
Maintenant, je me demande s'il y aurait une possibilité d'optimiser la chose en procédant d'une autre façon ou en ajoutant des conditions.
Ici par exemple, dans le cas d'une erreur de frappe "tmachin", la variable prendra la forme "TRUC" et ce serait assez embêtant.
Merci,
Halpness.
Je dispose d'un fichier texte dans lequel une variable peut prendre deux observations (disons "truc" et "machin"). Sachant que de nombreux traitements sont réalisés sur ce fichier, il faudrait impérativement que ces deux observations respectent une syntaxe unique.
L'idée est ici de procéder ainsi :
- Code:
if upcase(substr(var,1,1)) = "T" then var = "TRUC"; else
if upcase(substr(var,1,1)) = "M" then var = "MACHIN";
else var = "ERROR";
Maintenant, je me demande s'il y aurait une possibilité d'optimiser la chose en procédant d'une autre façon ou en ajoutant des conditions.
Ici par exemple, dans le cas d'une erreur de frappe "tmachin", la variable prendra la forme "TRUC" et ce serait assez embêtant.
Merci,
Halpness.
Mac_Leod- Nombre de messages : 28
Date d'inscription : 25/06/2015
Re: Uniformisation syntaxe variable texte
Bonjour,
peut-être que tu pourrais utiliser un truc, un machin, dans ce genre là. L'idée est de comparer le nombre de lettres en commun relativement au nombre de lettres dans chacune des deux comparaisons. J'ai mis quelques tests pour te montrer ce que ça donne.
Dis-moi si ça te va
Niaboc
peut-être que tu pourrais utiliser un truc, un machin, dans ce genre là. L'idée est de comparer le nombre de lettres en commun relativement au nombre de lettres dans chacune des deux comparaisons. J'ai mis quelques tests pour te montrer ce que ça donne.
- Code:
data a;
length var $ 10;
input var $;
cards;
truc
machin
tmachin
mtruc
Niaboc
Truk
Mac_Leod
Duncan
test
matric
machintruc
;
run;
data a;
set a;
if countc(var,"MACHIN",'I T')/length("MACHIN")>countc(var,"TRUC",'I T')/length("TRUC") then do;
resultat="MACHIN";
end;
else do;
resultat="TRUC";
end;
run;
proc print data=a noobs;
var var resultat;
run;
Dis-moi si ça te va
Niaboc
niaboc- Nombre de messages : 1001
Age : 37
Localisation : Paris
Date d'inscription : 05/05/2008
Re: Uniformisation syntaxe variable texte
Hello,
Merci pour cette solution qui me convient totalement !
Evidemment, elle reste un peu aléatoire sur certaines chaînes de caractères mais mes observations ne devraient pas prendre de valeurs aussi extrêmes
Maintenant, je me pose une question, comme pourrait - on gérer le soucis dans le cas de noms de variables quasi identique (nomvar1, nomvar2) par exemple, une faute de frappe, l'oubli d'un caractère, etc ... ou simplement le fait d'avoir une égalité au niveau des tailles des 2 côtés qui renverrait tout dans le else de fin ^^
Merci pour cette solution qui me convient totalement !
Evidemment, elle reste un peu aléatoire sur certaines chaînes de caractères mais mes observations ne devraient pas prendre de valeurs aussi extrêmes
Maintenant, je me pose une question, comme pourrait - on gérer le soucis dans le cas de noms de variables quasi identique (nomvar1, nomvar2) par exemple, une faute de frappe, l'oubli d'un caractère, etc ... ou simplement le fait d'avoir une égalité au niveau des tailles des 2 côtés qui renverrait tout dans le else de fin ^^
Mac_Leod- Nombre de messages : 28
Date d'inscription : 25/06/2015
Re: Uniformisation syntaxe variable texte
Mac_Leod a écrit:
Maintenant, je me pose une question, comme pourrait - on gérer le soucis dans le cas de noms de variables quasi identique (nomvar1, nomvar2) par exemple, une faute de frappe, l'oubli d'un caractère, etc ... ou simplement le fait d'avoir une égalité au niveau des tailles des 2 côtés qui renverrait tout dans le else de fin ^^
Il faudrait avoir des exemples concrets pour se rendre compte vraiment de ce qu'il faut faire. Si tu peux en faire?
niaboc- Nombre de messages : 1001
Age : 37
Localisation : Paris
Date d'inscription : 05/05/2008
Re: Uniformisation syntaxe variable texte
Dans le cas d'anagrammes par exemple (romain, marion).
Voilà ce que renverrait le code :
Voilà ce que renverrait le code :
- Code:
Obs var resultat
1 marion MARION
2 romain MARION
3 marino MARION
4 romian MARION
5 ormain MARION
6 maron MARION
7 marron MARION
8 romin MARION
Mac_Leod- Nombre de messages : 28
Date d'inscription : 25/06/2015
Re: Uniformisation syntaxe variable texte
Ouais dans ce cas ça peut-être très chiant.
Il faudrait calculer une probabilité que le mot soit identique. Ca se complique beaucoup... en cherchant un peu je n'ai pas trouvé de fonction qui permette de faire ça directement.
Tu peux rajouter des conditions, si le mot apparaît dans la chaîne de caractère etc. pour l'instant si tu veux un truc plus complet (même si le cas d'anagramme va rester un cas très rare j'imagine?). Sinon il faudrait faire des recherches pour faire un beau code...
Niaboc
Il faudrait calculer une probabilité que le mot soit identique. Ca se complique beaucoup... en cherchant un peu je n'ai pas trouvé de fonction qui permette de faire ça directement.
Tu peux rajouter des conditions, si le mot apparaît dans la chaîne de caractère etc. pour l'instant si tu veux un truc plus complet (même si le cas d'anagramme va rester un cas très rare j'imagine?). Sinon il faudrait faire des recherches pour faire un beau code...
Niaboc
niaboc- Nombre de messages : 1001
Age : 37
Localisation : Paris
Date d'inscription : 05/05/2008
Re: Uniformisation syntaxe variable texte
Pas de soucis, j'imagine bien qu'il faudrait un code plus poussée dans ce genre de cas.
Il s'agissait d'un simple exemple me permettant aussi à moi de pouvoir remettre en question l'utilisation de cette fonction dans certains cas.
Merci en tout cas pour cette aide
Il s'agissait d'un simple exemple me permettant aussi à moi de pouvoir remettre en question l'utilisation de cette fonction dans certains cas.
Merci en tout cas pour cette aide
Mac_Leod- Nombre de messages : 28
Date d'inscription : 25/06/2015
Sujets similaires
» liaison:variable quali#variable quanti, très urgent
» Relation entre variable nominale et variable ordinale
» Corrélation entre variable continue et variable discrète
» [Résolu] Variable polytomique et variable dichotomique
» conversion variable qualitative en variable quantitative
» Relation entre variable nominale et variable ordinale
» Corrélation entre variable continue et variable discrète
» [Résolu] Variable polytomique et variable dichotomique
» conversion variable qualitative en variable quantitative
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|