Compara cadenas y asigna las más coincidentesHola,
Un poco desafiante (tal vez)
Estoy intentando hacer coincidir los valores de las filas con alguna lista de cadenas de muestra y quiero saber qué elementos de la lista de muestra coinciden más con el valor de la fila.
aquí hay un ejemplo de una lista
Sample_strings = { "Port3_Currents_587", "Port1_Volt_8_Off", "PortC_Volt_12", "PortX_Curre_589_On", "Curren_Port_1280_On","Currents_5sd_On_Port1","Port_Currents_587_On" };
¿Cómo encontrar qué filas tienen la mayor cantidad de caracteres coincidentes con una cadena de muestra y asignar la cadena más coincidente de la lista a la segunda columna?
¿Alguna sugerencia?
Aquí está el resultado final que me gustaría lograr:

Gracias,
Automatización y secuencias de comandosRe: Comparar cadenas y asignar las más coincidentesNo es obvio, a partir de su pregunta + publicación, que está buscando la mayoría de los caracteres coincidentes o la coincidencia más cercana como una cadena (¿dos cosas diferentes con dos soluciones diferentes?
Para cadenas coincidentes, uno de estos podría ayudar a Editar el script más corto y elegir el más cercano (el índice de scripting no puede obtener el enlace a la página de ayuda para esto).
Editar:
Enlace de ayuda de JMP para identificar diferencias entre cadenas, líneas o secuencias (jmp.com)
Re: Comparar cadenas y asignar las más coincidentes@jthi Estoy buscando la coincidencia del armario como una cadena de la lista. Soy consciente del índice de secuencia de comandos de edición más corta, sin embargo, estoy tratando de descubrir cómo puedo asignar la cadena de coincidencia más cercana de la lista de muestra que está ordenada aleatoriamente.
Re: Comparar cadenas y asignar las más coincidentes¿Qué criterios puedo utilizar para determinar la mejor coincidencia entre las cadenas? ¿"Común" en el SES? ¿Puedes compartir un ejemplo?
Re: Comparar cadenas y asignar las más coincidentesCreo que esto depende de lo que consideres "más coincidente". Algunos ejemplos:
- PortX_Currents_5879_On ¿Cuál está más cerca de PortX_Curre_589_On o Port_Currents_587_On ?
- Port3_Currents_5879_On ¿cuál está más cerca de Port3_Currents_587 o Port_Currents_587_On ?
¿y por qué?
Re: Comparar cadenas y asignar las más coincidentes- PortX_Currents_5879_On cual esta mas cerca PuertoX_Curre_589_On o Port_Currents_587_On ?
- Port3_Currents_5879_On cual esta mas cerca Puerto3_Corrientes_587 o Port_Currents_587_On ?
Yo diría que considere ambos casos para cada cadena, ya que coinciden mucho y luego el usuario decidirá cuál elegir.
Re: Comparar cadenas y asignar las más coincidentesLo más probable es que su algoritmo no los considere iguales. Si tuviera que adivinar, muchos considerarían más cercana la segunda opción, ya que requiere menos ediciones. Para una verificación simple usando la distancia de edición más corta(), puede simplemente verificar las inserciones, eliminaciones y cuántas letras se editaron. Elegir Closest() podría ser un método un poco más de fuerza bruta, ya que podría permitirle usar 9999 ediciones o algo similar.
Mis soluciones bastante rápidas no están de acuerdo con la cadena más coincidente que proporcionó (solo me gustaría comprobar qué tan larga es la secuencia común al principio)

Pocos enlaces para leer sobre la distancia de edición
Si tiene JMP18, también puede usar Python para comparar la distancia de las cadenas (pero lo más probable es que los métodos de JMP sean más que suficientes). Si te permites usar bibliotecas no estándar con Python, obtendrás aún más opciones.
Re: Comparar cadenas y asignar las más coincidentesLe echaré un vistazo. Gracias Jarmo.
¿Creó manualmente las columnas ShorestEdit/ChooseCloset en el fragmento anterior? Si no, ¿te importaría compartir tu lógica?
Gracias,
Re: Comparar cadenas y asignar las más coincidentesEs demasiado trabajo intentar calcular manualmente las coincidencias más cercanas, así que utilicé las funciones que he mencionado.
Elegir más cercano es muy fácil de implementar si verifica el ejemplo del índice de secuencias de comandos que permite ediciones (el primer argumento es su valor en la tabla, el segundo es su lista de muestra y aumenta el recuento máximo de ediciones según sea necesario).

Re: Comparar cadenas y asignar la más coincidenteRecorra su lista, realice el cálculo utilizando el script de edición más corto (o escriba su propio algoritmo) para cada uno de los valores y elija el que tenga la mejor coincidencia.