Betreff: So wählen Sie Zeilen in einer Spalte mit einem RegEx ausdt << select where(
Contains( :"Aligned_bin_on_ref(ref[+/-]strand:start-end"n, , "Insert" ) == 1
)
Betreff: So wählen Sie Zeilen in einer Spalte mit einem RegEx ausHallo Jim,
Ich erhalte immer noch eine "Nicht aufgelöste Spalte in Zeile 1 beim Zugriff oder bei der Auswertung von 'Aligned_bin_on_ref(ref[+/-]strand:start-end' , As Column/*###*/()"
Ich habe Ihre Lösung mit und ohne das "n" nach dem Spaltennamen ausprobiert, nur für den Fall, dass es kein Tippfehler war.
Übrigens verwende ich JMP 16.0.0
dt << select where(
Contains( :"Aligned_bin_on_ref(ref[+/-]strand:start-end", ,"Insert" ) == 1 );
Betreff: So wählen Sie Zeilen in einer Spalte mit einem RegEx ausVielen Dank Jim.Nachdem ich die fehlende Klammer ")" hinzugefügt habe, funktioniert es wie ein Zauber.Das wird mir einige Stunden ersparen. Beifall!
Betreff: So wählen Sie Zeilen in einer Spalte mit einem RegEx ausContains(...) ist eine wirklich interessante Funktion. Es scheint, als würde es nur wahr oder falsch zurückgeben, wahr, wenn die Testzeichenfolge irgendwo in der Quellzeichenfolge gefunden wird, und falsch, wenn nicht.
Es gibt tatsächlich die Position (des ersten Vorkommens) der Testzeichenfolge in der Quelle zurück und 0, wenn sie nicht gefunden wird. Da 0 falsch und ungleich Null wahr bedeutet, funktioniert Contains(...) gut, wenn Sie das Ergebnis true/false erwarten.
Aber wie das Beispiel von Jim zeigt, können Sie die Position des ersten Vorkommens verwenden, um festzustellen, ob es am Anfang steht. Dies ist effizienter als Regex (...), das mehr Maschinen für diesen einfachen Test in Gang setzt.
Contains ist einfacher zu lesen: Ihr ursprünglicher Regex-Test könnte so aussehen:
dt << select where( !Is Missing( Regex( dt:"Aligned_bin_on_ref(ref[+/-]strand:start-end)"n, "^Insert" ) ) );
weil regex(...) einen fehlenden Wert zurückgibt, wenn er nicht übereinstimmt.
In beiden Fällen hilft ein Kommentar der nächsten Person, die den Code verwaltet, entweder /* ==1 um sicherzustellen, dass er am Anfang steht */ oder /* Regex gibt fehlende zurück, wenn er nicht am Anfang gefunden wird */
edit: regex(...)=="Insert" würde auch funktionieren, aber der Vergleich mit einem fehlenden Wert gibt nicht wahr oder falsch zurück, also vermeide ich es.
Betreff: So wählen Sie Zeilen in einer Spalte mit einem RegEx ausLieber Craige, vielen Dank für die tolle JSL-Stunde!
Sehr geschätzt.
Alfredo
Betreff: So wählen Sie Zeilen in einer Spalte mit einem RegEx ausSie haben die JSL nicht korrekt kopiert.Sie haben 2 Kommas nach dem Spaltennamen und kein nachgestelltes "n".
dt << select where(
Contains( :"Aligned_bin_on_ref(ref[+/-]strand:start-end"n , "Insert" ) == 1
)
Mir ist gerade aufgefallen, dass mein Code 2 Kommas hatte, was ein Fehler war .... Ich habe meine Eingabe korrigiert
So wählen Sie Zeilen in einer Spalte mit einem RegEx ausHallo, ich möchte alle Zeilen auswählen, die mit dem Wort „Einfügen“ in einer Spalte beginnen, die einen sehr komplizierten Namen hat: „Aligned_bin_on_ref(ref[+/-]strand:start-end“.Ich kann mithilfe einiger anderer Spalten beliebige Zeilen auswählen, aber der Name dieser Spalte wird irgendwie als „Code“ interpretiert.
Ich versuche auch, einen regulären Ausdruck zu verwenden, da die „Werte“ in der Spalte möglicherweise mehr als eine Instanz des Wortes „Einfügen“ enthalten und ich nur diejenigen auswählen möchte, die mit „Einfügen“ beginnen.
Dies ist der Basiscode, den ich zusammen mit einem anderen Code, den ich ausprobiert habe, auskommentiert habe. Im Anhang finden Sie ein Beispiel der Tabelle.
Ich freue mich über jeden Hinweis,
Danke!
Alfredo
//----------------- INITIALIZE ---------------
Names Default To Here( 1 );
dt = Current Data Table ();
dt << Clear Select;
//RefCol= "Aligned_bin_on_ref(ref[+/-]strand:start-end";
// dt << Select Where (:Name("Aligned_bin_on_ref(ref[+/-]strand:start-end"), "Insert" );
SelRows = dt << Get Rows Where (RegEx(As Column("Aligned_bin_on_ref(ref[+/-]strand:start-end") , "^Insert") == "Insert");<BR />
//InsertDepth = dt << Subset( (SelRows) );Erweiterte statistische ModellierungVerbraucher- und MarktforschungMassenanpassungQualitäts- und VerfahrenstechnikWindows