Devo importare alcuni file di testo in cui la virgola (,) viene utilizzata come separatore decimale. Non voglio modificare le mie impostazioni da Inglese/Usa impostazioni JMP perché altrimenti le mie altre importazioni e script smetterebbero di funzionare, quindi ho pensato di provare la nuova funzionalità di JMP 16.1 ( Comando JSL per ottenere e impostare la lingua di visualizzazione in JMP ) Quello @Jeff_Perkinson menzionato.
Quindi vado a costruire la mia piccola sceneggiatura:
</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 colonne di caratteri, il che non è esattamente quello che volevo.</P><P>Quindi qualche aiuto? C'è qualcosa che non va nelle mie impostazioni di importazione (non ho modificato nessuna preferenza standard tranne il fatto che utilizzo il punto e virgola come separatore di fine campo) o ho trovato un bug?</P><P>La mia versione JMP è la 16.1 e utilizzo la versione di Windows, se questo aiuta.</P></LINGO-BODY><LINGO-LABS id="lingo-labs-411484" slang="en-US" mode="NONE"><LINGO-LABEL>Automazione e scripting</LINGO-LABEL><LINGO-LABEL>Ricerche sui consumatori e sul mercato</LINGO-LABEL><LINGO-LABEL>Personalizzazione di massa</LINGO-LABEL><LINGO-LABEL>finestre</LINGO-LABEL></LINGO-LABS><LINGO-SUB id="lingo-sub-428895" slang="en-US" mode="NONE">Ri: Importazione con virgola separatore decimale in JMP 16 - Le impostazioni locali personalizzate non funzionano</LINGO-SUB><LINGO-BODY id="lingo-body-428895" slang="en-US" mode="NONE"><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.
Sembra di aver trovato un bug: sì, la ricodifica o lo scripting possono risolverlo, ma volevo provarlo in modo intelligente...
Ciao Feli
Penso che il modo più rapido per risolvere il tuo problema sia utilizzare la funzione di ricodifica. Vai all'intestazione della colonna, fai clic con il pulsante destro del mouse 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 riportandola numerica.
Spero che questo sia d'aiuto?
saluti
Lu
Potrebbe trattarsi di un bug (potresti contattare support@jmp.com ), ma potresti creare una via d'uscita temporanea da questa situazione? Potresti ad esempio sostituire "," con "." in colonne specifiche e quindi tentare di convertire le colonne in numeriche.