Ich muss einige Textdateien importieren, in denen Komma (,) als Dezimaltrennzeichen verwendet wird. Ich möchte meine Einstellungen von Englisch/JMP-Einstellungen verwenden nicht ändern, da sonst meine anderen Importe und Skripte nicht mehr funktionieren, also dachte ich, ich probiere die neue Funktion in JMP 16.1 ( JSL-Befehl zum Abrufen und Festlegen der Anzeigesprache in JMP ) das @Jeff_Perkinson erwähnt.
Also baue ich mein kleines Skript:
</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>Aber es passiert nichts - das Komma wird nicht als Dezimaltrennzeichen erkannt und die numerischen Spalten werden als Zeichenspalte importiert, was genau nicht das ist, was ich wollte.</P><P>Also Hilfe? Stimmt etwas mit meinen Importeinstellungen nicht (ich habe keine Standardeinstellungen geändert, außer dass ich das Semikolon als Trennzeichen für das Feldende verwende) oder habe ich einen Fehler gefunden?</P><P>Meine JMP-Version ist 16.1 und ich verwende die Windows-Version, wenn das hilft.</P></LINGO-BODY><LINGO-LABS id="lingo-labs-411484" slang="en-US"><LINGO-LABEL>Skripting</LINGO-LABEL><LINGO-LABEL>Fenster</LINGO-LABEL></LINGO-LABS><LINGO-SUB id="lingo-sub-412622" slang="en-US">Betreff: Import mit Dezimaltrennzeichen Komma in JMP 16 - Benutzerdefinierte Gebietsschemaeinstellungen funktionieren nicht</LINGO-SUB><LINGO-BODY id="lingo-body-412622" slang="en-US"><P>Hallo Feli</P><P>Ich denke, der schnellste Weg, Ihr Problem zu lösen, besteht darin, die Recode-Funktion zu verwenden. Gehen Sie zur Spaltenüberschrift, klicken Sie mit der rechten Maustaste und aktivieren Sie "Recode". Gehen Sie dann zum roten Dreieck "in Zeichen konvertieren" gehen Sie erneut zum roten Dreieck "String ersetzen" und ändern Sie die Zeichenfolge in das, was Sie möchten. Danach können Sie die Spaltenmerkmale wieder numerisch ändern.</P><P>Hoffe das ist hilfreich?</P><P> </P><P>Grüße</P><P> </P><P>Lu</P></LINGO-BODY><LINGO-SUB id="lingo-sub-426293" slang="en-US">Betreff: Import mit Dezimaltrennzeichen Komma in JMP 16 - Benutzerdefinierte Gebietsschemaeinstellungen funktionieren nicht</LINGO-SUB><LINGO-BODY id="lingo-body-426293" slang="en-US"><P>Anscheinend habe ich einen Fehler gefunden - ja, Recode oder Scripting kann ihn beheben, aber ich wollte es auf clevere Weise versuchen ...</P></LINGO-BODY><LINGO-SUB id="lingo-sub-428895" slang="en-US">Betreff: Import mit Dezimaltrennzeichen Komma in JMP 16 - Benutzerdefinierte Gebietsschemaeinstellungen funktionieren nicht</LINGO-SUB><LINGO-BODY id="lingo-body-428895" slang="en-US"><P>Nach Gesprächen mit dem JMP-Support haben wir diese Lösung gefunden:</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")
)
)
Der Schlüssel besteht darin, Use Regional Settings(1) festzulegen und die Spalten während des Imports auf numerisch festzulegen.
Dies könnte ein Fehler sein (Sie können sich an uns wenden support@jmp.com ), aber könnten Sie sich hier vorübergehend per Skript befreien? Sie könnten zum Beispiel das "," durch "." ersetzen. in bestimmten Spalten und versuchen Sie dann, die Spalten in Numerisch umzuwandeln.