Wie kann ich verhindern, dass dreistellige Versionsnummern als Datumsangaben in die Datentabelle eingelesen werden?Wenn ich in JMP 14.2.0 eine CSV-Datei einlese (oder „öffne“), die eine Spalte mit dreistelligen Versionsnummernwerten enthält, werden diese Werte als Datum interpretiert. Wenn verTest.csv beispielsweise Folgendes enthält:
Product,Station,Version,Date
Widget,Audio-Test,2.2.2044,3/2/19
Widget,RF-Test,2.2.2045,3/2/20
Alle Spaltenwerte werden wie erwartet interpretiert, mit Ausnahme der Versionswerte, die als Datumsangaben eingelesen werden, z. B. 02.02.2044 und 02.02.2045, mit numerischem Datentyp, kontinuierlichem Modellierungstyp und mit m/d/y Format. Ich finde, dass 2-stellige und 4-stellige Versionsnummern ok gelesen werden, also als Zeichenketten.
Eine weitere Komplikation besteht darin, dass ich nicht im Voraus weiß, welche Spalten dieses Format enthalten könnten, sodass ich die Spaltentypen nicht explizit im Voraus festlegen kann (und es ist auch nicht klar, dass es überhaupt möglich ist, die Spaltentypen vor dem Öffnen festzulegen). eine CSV-Datei). Und wenn ich versuche, die Spaltentypen nachträglich manuell zu ändern, scheinen die „/“-Zeichen so eingebaut zu sein, dass beim Ändern des Typs in „Zeichen“ der Wert mit der Zeichenfolge „2/2/2044“ zurückbleibt.
Gibt es eine Möglichkeit, diese Interpretation zu verhindern, sodass dreistellige Versionsnummern als Zeichenfolgen eingelesen werden, z. B. Zeichen, Nominalwert (und ohne dass dies Auswirkungen auf die Interpretation von Datumsangaben in herkömmlichen Formaten wie m/t/y hat)?
Betreff: Wie kann ich verhindern, dass dreistellige Versionsnummern als Datumsangaben in die Datentabelle eingelesen werden?...und Sie können solche Daten verwenden
<<SET date="" filter=""></SET>
<<CreateWindow with pre-populated date range<<CreateWindow with pre-populated date range<
Betreff: Wie kann ich verhindern, dass dreistellige Versionsnummern als Datumsangaben in die Datentabelle eingelesen werden?Ich freue mich, dass das bei Ihnen funktioniert!
Die Syntax dient drei Zwecken: Merken des vollständigen Status des Dialogs, wenn Sie den Dialog mit vorab ausgefüllten Werten erneut starten möchten, Ausführen des Imports und Anzeigen der Möglichkeiten. Die Filter sind ein Beispiel für all das:
<<SET name="" filter=""></SET>
Vergleicht man das mit dem Dialog,
using <<CreateWindow instead of <<ImportDatausing <<CreateWindow instead of <<ImportDataVerwenden von <<
Im Dialogfeld gibt es Kontrollkästchen, mit denen der Filter aktiviert und deaktiviert werden kann. Oben ist der Namensfilter aktiviert und die Größen- und Datumsfilter werden nicht verwendet. Die Werte in den Größen- und Datumsfiltern sind entweder (1) die letzten Werte, mit denen Sie experimentiert haben, oder (2) der Größen- und Datumsbereich der von Ihnen ausgewählten Datei. Höchstwahrscheinlich (2). Ihre Datei ist also wahrscheinlich 100 Byte lang. Die Zahl ist ein JMP-Datums-/Uhrzeitwert. Sie können beispielsweise asdate( verwenden. 3666002110.40841 ) zu bekommen
02. März 2020: 13:55:10
Sie können diese Zeilen und (wahrscheinlich) viele andere aus dem Skript löschen; Dabei handelt es sich größtenteils um Standardwerte, die zeigen, wie MFI verwendet wird.
Zum Schluss, was das Skript wirklich macht: Die Funktion MFI(...) gibt ein Objekt zurück. Das << Daten importieren -Methode ganz am Ende weist das Objekt an, die Daten tatsächlich zu importieren. Es gibt ein Beispiel im Scripting Index, das << anzeigt CreateWindow als weitere Methode. Das MFI-Objekt wird sofort verwendet und dann im << zerstört Daten importieren Fall. Im << CreateWindow In diesem Fall wird das MFI-Objekt erst zerstört, wenn das Fenster geschlossen wird. Sie können auch xyz = MultipleFileImport(...); und Nachrichten an die Variable xyz senden (einschließlich Daten importieren Und CreateWindow ); Das Objekt wird nicht zerstört, bis die Variable gelöscht wird. ShowProperties(xyz) listet die Nachrichten im Protokollfenster auf; Sie werden auch im Skript verwendet.
Betreff: Wie kann ich verhindern, dass dreistellige Versionsnummern als Datumsangaben in die Datentabelle eingelesen werden?Hallo @Craige_Hales ,
Vielen Dank für den Vorschlag! Ich habe es umgesetzt Mehrere Dateiimport und habe es intensiv getestet; Ich kann keine Probleme finden und die Anzeige erfolgt im dreistelligen Bereich Ausführung Spalte (und ähnliche) mit intakten Trennzeichen, liest die Daten aber trotzdem korrekt ein.
Aus der im Handbuch erstellten Quelle Mehrere Dateiimport , ich habe folgendes bekommen:
Multiple File Import(
<<SET folder=""></SET>
Um das in meine Importfunktion zu integrieren (die das übernimmt Weg als Parameter), musste ich nur die ersten beiden Methoden korrekt ausfüllen:
Convert_csv_to_jmp = Function( {path},
:
:
// determine folder and file args for Multiple File Import function.
lastSlash = Contains( path, "/", -1 );
dir = Substr( path, 1, lastSlash );
If( Length(dir) == 0,
dir = "./";
);
file = Substr( path, lastSlash+1 );
Write( "Path: ", dir, "\!nFile: ", file, "\!n" );
Multiple File Import(
<<SET folder=""></SET>Ich würde mich freuen, wenn jemand aus der Community einen Link zu einer guten Dokumentation zu dieser Funktion erstellen könnte. Ich würde gerne verstehen, was alle Methoden bewirken. Zum Beispiel, Datumsfilter festlegen scheint einige sehr geheimnisvolle Argumente zu wollen.
Betreff: Wie kann ich verhindern, dass dreistellige Versionsnummern als Datumsangaben in die Datentabelle eingelesen werden?Verwenden Sie den Import mehrerer Dateien. Es wird nicht versucht, Datumsformate zu erraten. Wenn Sie nur diese Option auswählen, wird jeweils eine Datei importiert, aber eigentlich ist es darauf ausgerichtet, eine Reihe ähnlicher Dateien aus einem Ordner zu importieren. Sehen Sie sich das Quellskript eines manuellen Imports an, wenn Sie den Vorgang wiederholen müssen.
Betreff: Wie kann ich verhindern, dass dreistellige Versionsnummern als Datumsangaben in die Datentabelle eingelesen werden?Hallo Cameron,
Danke für Ihre Antwort. Gemäß Ihrem Vorschlag konnte ich im letzten Importbildschirm auf das Symbol links neben dem roten Pfeil klicken, um es von einer numerischen Datenspalte in eine Zeichendatenspalte zu ändern. Damit wurden die Daten so importiert, wie ich es wollte.

Die Quelle hierfür gab mir Folgendes:
Open(
"<SPAN>/Users/st/src/analysis_jmp/</SPAN>testVer.csv",
columns(
New Column( "Product", Character, "Nominal" ),
New Column( "Station", Character, "Nominal" ),
New Column( "Version", Character, "Nominal" ),
New Column( "Date",
Numeric,
"Continuous",
Format( "m/d/y", 10 ),
Input Format( "m/d/y" )
)
),
Das deutet darauf hin Es ist möglich, die Spaltentypen vor dem Öffnen einer CSV-Datei festzulegen. Wenn ich jedoch nur auf die Spalte „Version“ in meinem JSL-Skript abziele, geht alles durcheinander – (JSL-Fehler vielleicht??).
Mein Skript:</CODE></P><P> </P><PRE><CODE class=" language-jsl">path = "./verTest.csv";<BR />dt = Open(
path,
columns(
New Column( "Version", Character, "Nominal" )
),
Resultierende Quelle:
Open(
"/Users/st/src/analysis_jmp/verTest.csv",
columns(<BR /> New Column( "Product", Character, "Nominal" )<BR /> ),
Es sieht also so aus, als würde der Importer den Namen in der Spezifikation „Neue Spalte“ ignorieren und sie einfach in der Reihenfolge ihres Erscheinens in der Datei übernehmen („Produkt“ steht an erster Stelle – ich habe eine zweite neue Spalte mit ähnlichen Ergebnissen hinzugefügt, was diese Hypothese untermauert). .
Selbst wenn dies funktionieren würde, würde man davon ausgehen, dass ich den Namen der Spalte vor dem Import kannte (was nicht der Fall ist). In einigen Fällen ist das der Fall, also könnte ich diese Logik (vorausgesetzt, sie funktioniert) zumindest auf diese anwenden; aber irgendwann würde ich einige davon vermissen.
Ich hatte gehofft, dass es eine Importoption geben könnte, die die allgemeine Interpretation von Datumsangaben einschränkt oder einschränkt (so dass „.“-Zeichen beispielsweise nicht als m/d/y-Trennzeichen betrachtet werden).
Betreff: Wie kann ich verhindern, dass dreistellige Versionsnummern als Datumsangaben in die Datentabelle eingelesen werden?Hallo @SteveTerry ,
Wenn Sie die CSV-Datei in JMP öffnen, sollten im Navigationsfenster einige Optionen verfügbar sein (zumindest für Windows).Ich habe keinen Mac).Wählen Sie „Daten (mit Vorschau)“ und Sie haben die Möglichkeit, Formate für importierte Spalten manuell festzulegen.So sieht es unter Windows aus:

Wenn Sie auf „Öffnen“ klicken, wird eine Reihe von Dialogbildschirmen angezeigt, in denen Sie Parameter für den Import festlegen können.Auf dem zweiten Bildschirm können Sie oben in der Vorschau auf die Überschrift klicken, die Sie ändern möchten, und sicherstellen, dass diese Spalte als Zeichenspalte importiert wird.Sobald Sie es wie gewünscht importiert haben, können Sie einfach das Quellskript aus der Tabelle kopieren und es in Zukunft wiederverwenden, um den Import zu automatisieren.