Re: Come selezionare le righe su una colonna con una RegExdt << select where(
Contains( :"Aligned_bin_on_ref(ref[+/-]strand:start-end"n, , "Insert" ) == 1
)
Re: Come selezionare le righe su una colonna con una RegExCiao Jim,
Ricevo ancora una "colonna non risolta alla riga 1 nell'accesso o nella valutazione di 'Aligned_bin_on_ref(ref[+/-]strand:start-end' , As Column/*###*/()"
Ho provato la tua soluzione con e senza la "n" dopo il nome della colonna, nel caso non fosse un errore di battitura.
A proposito, sto usando JMP 16.0.0
dt << select where(
Contains( :"Aligned_bin_on_ref(ref[+/-]strand:start-end", ,"Insert" ) == 1 );
Re: Come selezionare le righe su una colonna con una RegExGrazie mille Jim.Dopo aver aggiunto la parentesi ")" mancante funziona come un incantesimo.Questo mi farà risparmiare parecchie ore. Saluti!
Re: Come selezionare le righe su una colonna con una RegExContiene(...) è una funzione davvero interessante. Sembra che potrebbe restituire solo true o false, true se la stringa di test si trova in un punto qualsiasi della stringa di origine e false in caso contrario.
In realtà restituisce la posizione (della prima occorrenza) della stringa di test nell'origine e 0 se non trovata. Poiché 0 significa falso e diverso da zero significa vero, Contiene(...) funzionerà perfettamente se ti aspetti il risultato vero/falso.
Ma, come mostra l'esempio di Jim, puoi usare la posizione della prima occorrenza per determinare se è all'inizio. Questo sarà più efficiente di regex(...) che attiverà più macchinari per eseguire questo semplice test.
Contiene è più facile da leggere: il tuo test regex originale potrebbe assomigliare a questo:
dt << select where( !Is Missing( Regex( dt:"Aligned_bin_on_ref(ref[+/-]strand:start-end)"n, "^Insert" ) ) );
perché regex(...) restituisce un valore mancante quando non riesce a trovare una corrispondenza.
In entrambi i casi, un commento aiuterà la prossima persona che mantiene il codice, o /* ==1 per assicurarsi che sia all'inizio */ o /* regex restituisce mancante se non trovata all'inizio */
edit: regex(...)=="Insert" funzionerebbe anche, ma il confronto con un valore mancante non restituisce true o false, quindi lo evito.
Re: Come selezionare le righe su una colonna con una RegExCaro Craige, grazie mille per la fantastica lezione JSL!
Davvero apprezzato.
Alfredo
Ri: Come selezionare le righe su una colonna con una RegExNon hai copiato correttamente il JSL.Hai 2 virgole dopo il nome della colonna e nessuna "n" finale
dt << select where(
Contains( :"Aligned_bin_on_ref(ref[+/-]strand:start-end"n , "Insert" ) == 1
)
Mi sono appena reso conto che il mio codice conteneva 2 virgole, il che è stato un errore... Ho corretto la mia voce
Come selezionare le righe su una colonna con un RegExCiao, voglio selezionare tutte le righe che iniziano con la parola "Insert" su una colonna che ha un nome molto complicato: "Aligned_bin_on_ref(ref[+/-]strand:start-end".Posso selezionare qualsiasi riga utilizzando alcune delle altre colonne, ma il nome di questa viene in qualche modo interpretato come "codice".
Sto anche cercando di utilizzare un Regex perché i "valori" sulla colonna possono contenere più di un'istanza della parola "Inserisci" e voglio selezionare solo quelli che iniziano con "Inserisci"
Questo è il codice di base che ho con qualche altro codice che ho provato a commentare. In allegato un campione della tabella.
Apprezzerò qualsiasi suggerimento,
Grazie!
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) );Modellazione statistica avanzataConsumatori e ricerche di mercatoPersonalizzazione di massaQualità e ingegneria di processofinestre