Datenergebnisse in Datenordnern grafisch vergleichenHi,
Ich bin ziemlich neu bei JMP und möchte den folgenden, ziemlich anspruchsvollen Vorgang automatisch ausführen, vorzugsweise über ein automatisiertes JMP-Skript oder eine andere Lösung, die Sie von Experten empfehlen können
.
Meine Daten:
Ich habe zwei Ordner mit Ergebnissen, datafolder1 und datafolder2. Es handelt sich technisch gesehen um die gleichen Messungen, es gibt einen kleinen Unterschied bei der Einrichtung und die gleichen Messungen werden nach und vor der Änderung wiederholt.
Jeder Ordner enthält mehrere .txt-Dateien, die Ergebnisdateien im .txt-Tabellenformat sind. Die .txt-Dateien haben für jeden Ordner dieselben Namen, und die Spaltennamen sind identisch. In der Praxis unterscheiden sich nur die numerischen Daten für jede Datei geringfügig.
Was ich will:
Ich möchte den Unterschied zwischen Ergebnisdatenordner1 und Ergebnisdatenordner2 für jede Spalte mit dem gleichen Namen von .txt grafisch vergleichen und eine .pdf-Ausgabe der Ergebnisse generieren. Ich habe es geschafft, die gewünschte Ausgabe im .pdf-Format zu generieren, musste aber 8-12 Stunden manuell arbeiten, um diese Ausgabe mit Graph Builder zu erhalten. Die Ausgabedatei heißt "wanted_output.pdf". Jetzt habe ich viele andere ähnliche Fälle zu erledigen, und dies manuell zu tun, würde viele Monate dauern.
die Dateien sind als Anhang. [Daten wurden inzwischen entfernt]
Vielen Dank im Voraus, ich habe seit Monaten mit diesem Problem zu kämpfen, und ich hoffe, JMP hat eine einfache Lösung dafür!
AnalytikDatentabelleGrafikSkripterstellungBetreff: Datenergebnisse in Datenordnern grafisch vergleichenHallo Txnelson und Ian
Klappt wunderbar! Danke dir!
Ich musste die Variable datafolder2 von folder1 in folder2 ändern.
Auch aus irgendeinem Grund skalierte der PDF-Druck nicht gut, ich musste die Standarddruckeinstellungen ändern Datei => Seite einrichten.
Problem gelöst, danke für alle Hilfe!
PS. Ich musste Daten aus dem ersten Beitrag entfernen, aber technisch gesehen funktioniert jeder Vorher-Nachher-Typ von Datenordnern mit diesem Skript.
Betreff: Datenergebnisse in Datenordnern grafisch vergleichenUnd als Alternative zu @txnelson 's Ansatz und nach der ursprünglichen Idee (und mit der Option "Unterordner einbeziehen"):
NamesDefaultToHere(1);
// Unzip the example file 'net_data.zip' to your Desktop
// Generated via 'File > Open Multiple..': tabList is a list of 'paired' tables
// that are built automatically according to the commonality of column names
tabList =
Multiple File Import(
<<SET folder=""></SET>
Wie üblich hängt die Integrität der Endergebnisse davon ab, was Sie über die Regelmäßigkeit der Daten annehmen können (und was nicht).
Betreff: Datenergebnisse in Datenordnern grafisch vergleichenIch musste ein paar Dinge erraten, aber das folgende Skript erstellt ein separates PDF für jede der Dateien, die in den Datatable-Ordnern gefunden werden.Ich habe das Diagrammformat ein wenig modifiziert.Es zeigt alle die gleichen Informationen, wie ich am besten feststellen kann, aber in einer etwas anderen Form.
Im Skript müssen Sie die Pfade zu Ordner 1 und Ordner 2 eingeben. Derzeit werden die PDFs im Verzeichnis $TEMP gespeichert.Sie müssen sie in einen echten Ordner ändern.
Names Default To Here( 1 );
// Set folder1 and folder2 paths
folder1 = "path to folder 1";
folder2 = "path to folder 2";
// Get files in datafolder 1 folder
fileNamesList = Files In Directory( folder1 );
For( File = 1, File <= N Items( fileNamesList ), File++,
// Open the file in datafolder1
dt1 = Open(
folder1 || "/" || fileNamesList[File],
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Tab, Comma, CSV( 1 ) ),
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( 1 ),
Column Names Start( 1 ),
Data Starts( 2 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
);
// New column: Index
dt1 << New Column( "Index", Numeric, "ordinal", Format( "Best", 12 ), Set Each Value( Row() ) );
// New column: Index
dt1 << New Column( "Measured", Character, Set Each Value( "Before" ) );
// Open the file in datafolder2
dt2 = Open(
folder1 || "/" || fileNamesList[File],
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Tab, Comma, CSV( 1 ) ),
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( 1 ),
Column Names Start( 1 ),
Data Starts( 2 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
);
// New column: Index
dt2 << New Column( "Index", Numeric, "Ordinal", Format( "Best", 12 ), Set Each Value( Row() ) );
// New column: Index
dt2 << New Column( "Measured", Character, Set Each Value( "After" ) );
// Concatenate tables
// → Data Table( "HW.DiodeTest.ADP_diodes" )
dt1 << Concatenate( dt2, Append to first table );
// Close the After data table
Close( dt2, nosave );
// get all continuous columns in the data table
colNamesList = dt1 << get column names( continuous, string );
theJournal = New Window( fileNamesList[File], <<JOURNAL></JOURNAL>
Betreff: Datenergebnisse in Datenordnern grafisch vergleichenKönnen Sie mir eine private Nachricht in der JMP Community senden? Ich kann vielleicht etwas einfacher per E-Mail helfen und dann können wir möglicherweise die endgültige Lösung hier posten.
Betreff: Datenergebnisse in Datenordnern grafisch vergleichenDanke Jarmo für die schnelle Antwort!
Ich brauche in der Tat eine JSL, um dies alles zu tun, es ist zu zeitaufwändig, dies für mehrere andere Fälle zu tun.
Aus architektonischer Sicht könnte folgende JSL funktionieren:
1. Importieren Sie alle Dateien aus beiden Ordnern.
2. Beitreten/& Wenn Sie die Ergebnisse in einer Datei verketten, scheint JMP automatisch eine Art Indizierung hinzuzufügen, wenn der Tabellenname gleich ist (XXXX).
3. Sortieren Sie die Spaltennamen in alphabetischer Reihenfolge.
4. Zeichnen Sie die Spalten 1 und 2 in ein Diagramm, zeichnen Sie die Spalten 3 und 4 für das nächste Diagramm, zeichnen Sie die Spalten 5 und 6 für das nächste Diagramm ... wiederholen Sie das Zeichnen der folgenden Zahlen, bis keine Spalten mehr übrig sind.
Es klingt alles einfach, aber ich habe nur Anfängerkenntnisse in JSL, irgendwelche Tipps und Beispiele für die einzelnen Schritte?
Betreff: Datenergebnisse in Datenordnern grafisch vergleichenDatei / Mehrere Dateien importieren könnte Ihnen den Einstieg erleichtern. Beim Importieren der Dateien müssen Sie einige Änderungen an den Standardeinstellungen vornehmen (Trennzeichen von Komma auf Tabulator ändern).
Von diesem Punkt an können Sie mit dem Verbinden der Datentabellen beginnen. Ich bin mir nicht sicher, ob es eine einfache Möglichkeit gibt, dies zu tun, außer JSL und das Durchlaufen der Liste der Datentabellen, die Sie gerade aus dem vorherigen Schritt erhalten haben.
Wiederholen Sie diesen Vorgang für beide Ordner und verketten Sie dann Datentabellen miteinander und erstellen Sie schließlich ein Diagramm mit dem Diagrammersteller (möglicherweise müssen Sie die Daten stapeln, bevor Sie ein Diagramm erstellen).