Re: Cómo seleccionar filas en una columna con un RegExdt << select where(
Contains( :"Aligned_bin_on_ref(ref[+/-]strand:start-end"n, , "Insert" ) == 1
)
Re: Cómo seleccionar filas en una columna con un RegExHola Jim,
Sigo recibiendo una "Columna sin resolver en la fila 1 en el acceso o evaluación de 'Aligned_bin_on_ref(ref[+/-]strand:start-end' , As Column/*###*/()"
Probé su solución con y sin la "n" después del nombre de la columna, en caso de que no fuera un error tipográfico.
Por cierto, estoy usando JMP 16.0.0
dt << select where(
Contains( :"Aligned_bin_on_ref(ref[+/-]strand:start-end", ,"Insert" ) == 1 );
Re: Cómo seleccionar filas en una columna con un RegExMuchas gracias Jim.Después de agregar el paréntesis ")" que falta, funciona de maravilla.Esto me va a ahorrar unas cuantas horas. ¡Salud!
Re: Cómo seleccionar filas en una columna con un RegExContiene (...) es una función realmente interesante. Parece que podría devolver simplemente verdadero o falso, verdadero si la cadena de prueba se encuentra en cualquier parte de la cadena de origen y falso si no.
En realidad, devuelve la posición (de la primera aparición) de la cadena de prueba en el origen y 0 si no se encuentra. Dado que 0 significa falso y distinto de cero significa verdadero, Contiene (...) funcionará bien si espera el resultado verdadero/falso.
Pero, como muestra el ejemplo de Jim, puede usar la posición de la primera aparición para determinar si está al principio. Esto será más eficiente que regex (...) que hará girar más maquinaria para hacer esta prueba fácil.
Contiene es más fácil de leer: su prueba de expresiones regulares original podría verse así:
dt << select where( !Is Missing( Regex( dt:"Aligned_bin_on_ref(ref[+/-]strand:start-end)"n, "^Insert" ) ) );
porque regex (...) devuelve un valor faltante cuando no coincide.
En cualquier caso, un comentario ayudará a la próxima persona que mantenga el código, ya sea /* ==1 para asegurarse de que esté al principio */ o /* la expresión regular devuelve que falta si no se encuentra en el ^ inicio */
edit: regex(...)=="Insert" también funcionaría, pero la comparación con un valor faltante no devuelve verdadero o falso, así que lo evito.
Re: Cómo seleccionar filas en una columna con un RegExEstimado Craige, ¡muchas gracias por la gran lección de JSL!
Muy apreciado.
Alfredo
Re: Cómo seleccionar filas en una columna con un RegExNo copió el JSL correctamente.Tiene 2 comas después del nombre de la columna y sin "n" al final
dt << select where(
Contains( :"Aligned_bin_on_ref(ref[+/-]strand:start-end"n , "Insert" ) == 1
)
Me acabo de dar cuenta de que mi código tenía 2 comas, lo cual fue un error... He corregido mi entrada
Cómo seleccionar filas en una columna con un RegExHola, quiero seleccionar todas las filas que comienzan con la palabra "Insertar" en una columna que tiene un nombre muy complicado: "Aligned_bin_on_ref(ref[+/-]strand:start-end".Puedo seleccionar cualquier fila usando algunas de las otras columnas, pero el nombre de esta de alguna manera se interpreta como "código".
También estoy tratando de usar Regex porque los "valores" en la columna pueden contener más de una instancia de la palabra "Insertar" y quiero seleccionar solo aquellos que comienzan con "Insertar".
Este es el código básico que tengo con algún otro código que he probado comentado. Adjunto una muestra de la tabla.
Agradeceré cualquier sugerencia,
¡Gracias!
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) );Modelado Estadístico AvanzadoInvestigación del Consumidor y del MercadoLa personalización en masaIngeniería de Calidad y Procesosventanas