Je dois importer des fichiers texte où la virgule (,) est utilisée comme séparateur décimal. Je ne souhaite pas modifier mes paramètres depuis Anglais/Utiliser les paramètres JMP, car sinon mes autres importations et scripts cesseraient de fonctionner. J'ai donc pensé essayer la nouvelle fonctionnalité de JMP 16.1 ( Commande JSL pour obtenir et définir la langue d'affichage dans JMP ) que @Jeff_Perkinson mentionné.
Alors c'est parti pour construire mon petit script :
</CODE></P><PRE><CODE class=" language-jsl">Get Preferences( Custom Locale Settings );
Preferences( Custom Locale Settings( Decimal Separator(",") ) );
Open(
"myfile",
columns(
...
),
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Other( "0x3b" ), CSV( 0 ) ),
Strip Quotes( 1 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 0 ),
Column Names Start( 1 ),
Data Starts( 1 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
);
</CODE></P><P>Mais rien ne se passe : la virgule n'est pas reconnue comme séparateur décimal et les colonnes numériques sont importées sous forme de colonne de caractères, ce qui n'est exactement pas ce que je voulais.</P><P>Alors, de l'aide ? Y a-t-il un problème dans mes paramètres d'importation (je n'ai modifié aucune préférence standard sauf que j'utilise un point-virgule comme séparateur de fin de champ) ou ai-je trouvé un bug ?</P><P>Ma version JMP est la 16.1 et j'utilise la version Windows, si cela peut aider.</P></LINGO-BODY><LINGO-LABS id="lingo-labs-411484" slang="en-US" mode="NONE"><LINGO-LABEL>Automatisation et scripts</LINGO-LABEL><LINGO-LABEL>Études de consommation et de marché</LINGO-LABEL><LINGO-LABEL>Personnalisation de masse</LINGO-LABEL><LINGO-LABEL>les fenêtres</LINGO-LABEL></LINGO-LABS><LINGO-SUB id="lingo-sub-428895" slang="en-US" mode="NONE">Re : Importer avec une virgule de séparateur décimal dans JMP 16 – Les paramètres régionaux personnalisés ne fonctionnent pas</LINGO-SUB><LINGO-BODY id="lingo-body-428895" slang="en-US" mode="NONE"><P>Après avoir discuté avec le support JMP, nous avons trouvé cette solution :</P><PRE><CODE class="">Preferences( Custom Locale Settings( Decimal Separator(",") ) );
Open(
"/C:/Temp/test_import.csv",
columns(
New Column("Number", Numeric, "Continuous", Format("Best", 12)),
New Column("Number2", Numeric, "Continuous")
),
Import Settings(
End Of Line(CRLF, CR, LF),
End Of Field(Other(";"), CSV(0)),
Strip Quotes(1),
Use Apostrophe as Quotation Mark(0),
Use Regional Settings(1),
Scan Whole File(1),
Treat empty columns as numeric(0),
CompressNumericColumns(0),
CompressCharacterColumns(0),
CompressAllowListCheck(0),
Labels(1),
Column Names Start(1),
Data Starts(2),
Lines To Read("All"),
Year Rule("20xx")
)
)
La clé est de définir Utiliser les paramètres régionaux (1) et de définir les colonnes sur numériques lors de l'importation.
Il semble que j'ai trouvé un bug - oui, le recodage ou le script peuvent le résoudre, mais je voulais l'essayer de manière intelligente...
Bonjour Féli
Je pense que le moyen le plus rapide de résoudre votre problème consiste à utiliser la fonction de recodage. Allez dans l'en-tête de la colonne, faites un clic droit et activez "recoder", puis allez dans le triangle rouge "convertir en caractère", allez à nouveau dans le triangle rouge "remplacer la chaîne" et changez la chaîne comme vous le souhaitez. Ensuite, vous pouvez modifier les caractéristiques de la colonne à nouveau numérique.
J'espère que cela vous aidera ?
salutations
Lu
Cela pourrait être un bug (vous pouvez contacter support@jmp.com ), mais pourriez-vous écrire un script pour vous en sortir temporairement ? Vous pourriez par exemple remplacer le "," par "." dans des colonnes spécifiques, puis essayez de convertir les colonnes en valeurs numériques.