Devo importare alcuni file di testo in cui viene utilizzata la virgola (,) come separatore decimale. Non voglio modificare le mie impostazioni da Inglese/Utilizza impostazioni JMP poiché altrimenti le altre mie importazioni e script smetteranno di funzionare, quindi ho pensato di provare la nuova funzionalità in JMP 16.1 ( Comando JSL per ottenere e impostare la lingua di visualizzazione in JMP ) Quello @Jeff_Perkinson menzionato.
Quindi vado a costruire il mio piccolo 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>Ma non succede nulla: la virgola non viene riconosciuta come separatore decimale e le colonne numeriche vengono importate come colonna di caratteri, che non è esattamente quello che volevo.</P><P>Quindi qualche aiuto? C'è qualcosa di sbagliato nelle mie impostazioni di importazione (non ho modificato alcuna preferenza standard tranne che uso il punto e virgola come separatore di fine campo) o ho trovato un bug?</P><P>La mia versione di JMP è 16.1 e uso la versione per Windows, se questo aiuta.</P></LINGO-BODY><LINGO-LABS id="lingo-labs-411484" slang="en-US"><LINGO-LABEL>Scripting</LINGO-LABEL><LINGO-LABEL>finestre</LINGO-LABEL></LINGO-LABS><LINGO-SUB id="lingo-sub-412622" slang="en-US">Re: Importa con virgola separatore decimale in JMP 16 - Impostazioni internazionali personalizzate non funzionanti</LINGO-SUB><LINGO-BODY id="lingo-body-412622" slang="en-US"><P>Ciao Feli</P><P>Penso che il modo più veloce per risolvere il tuo problema sia usare la funzione di ricodifica. Vai all'intestazione della colonna, fai clic con il tasto destro e attiva "ricodifica", quindi vai al triangolo rosso "converti in carattere" vai di nuovo al triangolo rosso "sostituisci stringa" e cambia la stringa in ciò che desideri. Successivamente è possibile modificare la caratteristica della colonna a ritroso numerico.</P><P>Spero che questo sia di aiuto?</P><P> </P><P>Saluti</P><P> </P><P>Lu</P></LINGO-BODY><LINGO-SUB id="lingo-sub-426293" slang="en-US">Re: Importa con virgola separatore decimale in JMP 16 - Impostazioni internazionali personalizzate non funzionanti</LINGO-SUB><LINGO-BODY id="lingo-body-426293" slang="en-US"><P>Sembra che ho trovato un bug: sì, la ricodifica o lo scripting possono risolverlo, ma volevo provarlo in modo intelligente...</P></LINGO-BODY><LINGO-SUB id="lingo-sub-428895" slang="en-US">Re: Importa con virgola separatore decimale in JMP 16 - Impostazioni delle impostazioni internazionali personalizzate non funzionanti</LINGO-SUB><LINGO-BODY id="lingo-body-428895" slang="en-US"><P>Dopo aver parlato con il supporto JMP, abbiamo trovato questa soluzione:</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 chiave è impostare Usa impostazioni internazionali(1) e impostare le colonne su numeriche durante l'importazione.
Questo potrebbe essere un bug (potresti contattare support@jmp.com ), ma potresti uscirne temporaneamente con uno script? Potresti ad esempio sostituire "," con "." in colonne specifiche e quindi provare a convertire le colonne in Numerico.