¿Cómo hacer coincidir parte del texto en 2 columnas?Hola a todos, me gustaría preguntar sobre este conjunto de datos.
| IDENTIFICACIÓN | Columna A | Columna B | Columna C
| Columna D |
| 1 | A*05:01 A*25:01 B*08:01 B*39:01 C*05:01 C*07:06 C*07:18 C*12:03 DRB1*05:01 DRB1*07:01 DRB3*01:01 DRB4*09:03N DQA1*02:01 DQA1*05:01 DQB1*02:01 DQB1*02:02 | DQA1*01-03,DQB1*06-03_DQ6 | | |
| 2 | A*20:01 A*60:02 B*08:01 B*28:03 C*02:02 C*03:04 DRB1*01:02 DRB1*13:04 DRB3*02:02 DRB3*02:02 DQA1*01:01 DQA1*01:04 DQA1*01:05 DQA1*05:05 DQA1*05:09 DQB1*02:01 DQB1*05:01 | DQA1*05-01,DQB1*02-01_DQ2 | | |
| 3 | A*01:01 A*01:01 B*08:01 B*38:01 C*06:02 C*09:01 C*07:06 C*07:18 DRB1*07:01 DRB1*07:01 DRB4*01:01 DRB4*01:03 DRB4*01:05N DQA1*02:01 DQA1*02:01 DQB1*02:02 DQB1*03:03 | DQA1*03-03,DQB1*04-01_DQ4 | | |
| 4.... | A*01:01 A*01:01 B*08:01 B*38:01 C*06:02 C*09:01 C*07:06 C*07:18 DRB1*07:01 DRB1*07:01 DRB4*01:01 DRB4*01:03 DRB4*01:05N DQA1*02:01 DQA1*03:03 DQB1*02:02 DQB1*03:03 | DQA1*03-03 ,DQB1*04-01_DQ4 | DQA1*02:01 DQA1*03:03 DQB1*02:02 DQB1*03:03 | DQA1*03:03 |
P1: ¿Cómo puedo hacerlo? Quiero extraer solo texto DQA1... y DQB1... de la columna A a la columna C.
P2: ¿Cómo puedo hacerlo? Quiero hacer coincidir el texto extraído en la columna B y la columna C en la misma fila en la columna D
Intento usar el comando regex, pero el problema ocurre con * y:, y no tengo idea de cómo hacer coincidir parte del texto con dos columnas en múltiples ID...
Puse lo que quiero en el ID 4., en este caso: y - son iguales.
¡De forma anticipada, muchas gracias por su ayuda!
Análisis y modelado de datos básicosMac OSRe: ¿Cómo unir parte del texto en 2 columnas?Para la columna D, puede usar Words(), Substitute() y Associative Array() + Intersect, en una fórmula, para encontrar coincidencias exactas.
aa1 = Associative Array(Words(:Column B, ","));
aa2 = Associative Array(Words(Substitute(:Column C, ":", "-"), " \!N"));
aa1 << Intersect(aa2);
Concat Items(aa1 << Get Keys, ",");
Para la columna C, puede obtener buenas ideas de Regex: no se pueden obtener todas las partes de la cadena que coincidan
Editar:
Aquí hay una opción para la Columna C que podría funcionar. Si no comprende lo que hace, le sugiero utilizar el bucle While y Regex, ya que generalmente es más fácil de entender que la coincidencia de patrones de JMP.
result = {};
Pat Match(
:Column A,
Pat Repeat(
(Pat Regex("(DQ[AB]1.+)[\s$]") >> result)
|
Pat Len(1)
)
);
Concat Items(Words(result, " "), ", ");

Re: ¿Cómo hacer coincidir parte de un texto en 2 columnas?Abre la tabla y comprueba las fórmulas añadidas a la columna C y a la columna D (ambas contienen fórmulas).

Si no está seguro de cómo crear fórmulas en JMP, consulte la página de ayuda de JMP https://www.jmp.com/support/help/en/17.2/#page/jmp/create-formulas-in-jmp.shtml#