Ich habe zwei Datenquellen, die ich zusammenstellen und eine Mastertabelle für Analyse und Berichterstellung erstellen muss.
Eines ist im CSV-Format (Ergebnis 1) und ein anderes im XLSX-Format (Ergebnisse 2). Bei der Datei im XLSX-Format muss ich individuelle Arbeitsblatteinstellungen angeben und angeben, welches Blatt beim Import geöffnet werden soll. Ich habe die folgenden Beiträge gesehen, es aber nicht geschafft, sie zum Laufen zu bringen:
https://community.jmp.com/t5/JMP-Scripts/Combine-multiple-txt-or-csv-files/ta-p/24083
https://community.jmp.com/t5/Discussions/How-do-I-get-the-import-file-settings-right-before-concatenating/mp/39286#M22977
Bei „Ergebnisse 1“ muss ich die Spalten 1 bis 3 angeben. Bei den Ergebnissen 2 muss ich die Spalten 1 bis 16 und die Zeilen 6 bis 7 im Protokollblatt angeben. Außerdem muss ich nach dem Importieren von Ergebnissen 2 von Spalte 3 bis Spalte n transponieren (n bedeutet nicht leer), also um Spalte 1 transponieren.
Ich muss dann die resultierenden Tabellen basierend auf übereinstimmenden Spalten zusammenfügen.
Könnte jemand ein Skript dafür bereitstellen oder einige Beispiele nennen, damit ich es selbst herausfinden kann?
Danke
Ich denke, dass der beste Einstieg in JSL die Verwendung von Skripten ist, die JMP generiert, wenn Sie die Point-and-Click-Schnittstelle verwenden.
Beginnen wir mit dem Import von Results 1. Alles, was Sie tun müssen, ist es zu öffnen (Datei > Öffnen) und die resultierende JMP-Tabelle verfügt über ein „Quell“-Skript. Klicken Sie mit der rechten Maustaste darauf und wählen Sie „Bearbeiten“, um das Skript zu erhalten, das diesen Import durchführt. (Machen Sie sich keine Sorgen über die zusätzlichen Spalten, die Sie nicht benötigen – Sie können diejenigen angeben, die Sie benötigen, wenn Sie später Tabellen verknüpfen.) Ihr Skript sollte so aussehen, aber mit dem vollständigen Dateipfad anstelle von „C:\..“ .".
Open(
"C:\...",
columns(
New Column( "Sample", Character, "Nominal" ),
New Column( "Hour", Numeric, "Continuous", Format( "Best", 12 ) ),
New Column( "Average", Numeric, "Continuous", Format( "Best", 12 ) ),
New Column( "Minimum", Numeric, "Continuous", Format( "Best", 12 ) ),
New Column( "Maximum", Numeric, "Continuous", Format( "Best", 12 ) )
),
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Comma, CSV( 1 ) ),
Strip Quotes( 0 ),
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" )
)
)
Für die Excel-Datei können Sie verwenden der Excel-Import-Assistent . Sie können das Arbeitsblatt und die Zeilennummern angeben, wo die Daten beginnen und enden. Auch hier können Sie das Quellskript aus der resultierenden JMP-Tabelle abrufen.
Open(
"C:\...",
Worksheets( "Protocol" ),
Use for all sheets( 0 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 2 ),
Headers Start on Row( 1 ),
Data Starts on Row( 9 ),
Data Starts on Column( 1 ),
Data Ends on Row( 10 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
)
Wenn Sie diese Skripte zusammenfügen, erhalten Sie ein Skript, das beide Tabellen in JMP importiert, was ein guter Anfang ist. Eine Sache, die Sie wissen müssen, ist, dass Sie am Ende jeder Aktion ein Semikolon „;“ hinzufügen müssen, wenn Sie eine Folge von Aktionen in einem Skript haben.
Sie müssen außerdem wissen, dass Sie in Ihrem Skript Referenzen für Ihre Datentabellen erstellen möchten. Sie können jeder Tabelle eine Referenz wie dt1, dt2 ... geben.
In diesem nächsten Teil des Skripts habe ich den Results1-Import geändert, um der resultierenden Tabelle eine Referenz, dt1, zu geben, und ich habe am Ende ein Semikolon hinzugefügt, damit es funktioniert, wenn ich das Skript später für die nächste Aktion hinzufüge.
dt1 = Open(
"C:\...",
columns(
New Column( "Sample", Character, "Nominal" ),
New Column( "Hour", Numeric, "Continuous", Format( "Best", 12 ) ),
New Column( "Average", Numeric, "Continuous", Format( "Best", 12 ) ),
New Column( "Minimum", Numeric, "Continuous", Format( "Best", 12 ) ),
New Column( "Maximum", Numeric, "Continuous", Format( "Best", 12 ) )
),
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Comma, CSV( 1 ) ),
Strip Quotes( 0 ),
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" )
)
);
Natürlich gibt es hier noch mehr zu tun, um Ihre Lösung zu finden, aber das hilft hoffentlich als Ausgangspunkt.
Phil