Wählen Sie Spalten basierend auf den in der Kopfzeile enthaltenen Wörtern ausIch möchte eine Analyse durchführen, aber ich muss mehrere Spalten basierend auf den in der Kopfzeile enthaltenen Wörtern auswählen, bevor ich dies tun kann. Derzeit mache ich das manuell, aber das ist sehr langsam und ich kann einige Spalten übersehen, wenn ich Ich bin nicht vorsichtig.
Im Bildbeispiel möchte ich die beiden Spalten auswählen, die mit „Welche Farben“ beginnen, aber keine der anderen vier. Sie können auf andere Spalten verteilt werden und ihre Anzahl ist je nach Experiment unterschiedlich. Sobald ich sie ausgewählt habe, kann ich sie extrahieren und die Analyse durchführen.
Dies muss automatisch erfolgen, ohne dass eine Benutzereingabe erforderlich ist, und ich kann kein JSL finden, das dies tut, aber ich bin mir sicher, dass es existieren muss, es ist nur so, dass ich es nicht finden konnte oder das Richtige nicht kenne Skriptbegriff.

Grüße
David
Automatisierung und SkripterstellungBetreff: Wählen Sie Spalten basierend auf den in der Kopfzeile enthaltenen Wörtern ausDanke!Betreff: Wählen Sie Spalten basierend auf den in der Kopfzeile enthaltenen Wörtern ausDie Funktion „Contains()“ gibt keinen booleschen Wert von 0 oder 1 zurück, sondern die Zeichenposition, an der der Vergleich gefunden wurde.
Versuchen Sie es mit
Contains( colList[i], "N" ) > 0
Betreff: Wählen Sie Spalten basierend auf den in der Kopfzeile enthaltenen Wörtern ausIch versuche, dieses Skript zu verwenden, um Spalten auszuwählen, die eine Zeichenfolge in der Mitte des Spaltennamens enthalten.Wenn ich „P“ oder „PN“ in „contains()“ eingebe, funktioniert es, aber nicht, wenn ich „N“ oder „NP“ oder „NP3“ einfüge.
Danke
For( i = 1, i <= N Items( colList ), i++,
If(
// Put in any selection criteria you want
//Left( colList[i], 2 ) == "PN" ,
// or it could be
Contains( colList[i], "N" ) == 1
,
Column( dt, colList[i] ) << set selected
)
);
Betreff: Wählen Sie Spalten basierend auf den in der Kopfzeile enthaltenen Wörtern ausVielen Dank, das funktioniert perfekt
Betreff: Wählen Sie Spalten basierend auf den in der Kopfzeile enthaltenen Wörtern ausIch glaube nicht, dass dies angesichts der Anforderung „keine Benutzereingabe“ etwas hinzufügt. Aber ich wollte die Gelegenheit nutzen und erwähnen, dass die Spaltenfilterung beim interaktiven Arbeiten sehr praktisch ist (und leicht übersehen wird). Manchmal verwenden Leute Skripte, weil sie denken, dass es über die Benutzeroberfläche „schwierig“ ist.
Der „Filter Col Selector“ ist ebenfalls skriptfähig:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Filter Col Selector Example", fcs = Filter Col Selector( DataTable("Big Class") ));
// See what messages the 'Filter Col Selector' understands
ShowProperties(fcs);
// Try it out
Print(fcs << GetItems);
Wait(3);
fcs << NameContains("ei");
Print(fcs << getItems);Betreff: Wählen Sie Spalten basierend auf den in der Kopfzeile enthaltenen Wörtern ausDies ist eine sehr einfache Möglichkeit, Ihre Anforderungen zu erfüllen, und sie ist auf viel komplexere Anforderungen erweiterbar
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
colList = dt << get column names( string );
dt << clear column selection;
For( i = 1, i <= N Items( colList ), i++,
If(
// Put in any selection criteria you want
Left( colList[i], 2 ) == "PN" ,
// or it could be
// contains( colList[i], "PN") == 1,
Column( dt, colList[i] ) << set selected
)
);
If( N Items( dt << get selected columns ) > 0,
dtSelected = dt << subset( selected rows( 0 ), selected columns( 1 ) )
);