es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Como traductor de español, puedo ayudarte a traducir documentos de IT. Para combinar texto de una columna con otra columna utilizando una fórmula VLOOKUP y LIKE en español, puedes utilizar las siguientes traducciones de términos: – Match: Coincidir – Text: Texto – One column: Una columna – Another column: Otra columna – VLOOKUP: BUSCARV – Like: Como Por lo tanto, la frase “Match text from one column with another column (VLOOKUP + like)” se traduciría como “Coincidir texto de una columna con otra columna (BUSCARV + como)” en español. Espero que esta información sea de ayuda para tus traducciones. Si tienes alguna otra pregunta, no dudes en hacerla.

Estoy intentando realizar una coincidencia de 2 columnas pero sin éxito. Tengo un DF1 con 2 columnas, Id y JSON. En el segundo DF2, tengo una columna con un patrón para coincidir en cada fila con DF1$json (algo como vlookup + la función like).

Como resultado, me gustaría obtener DF1$Id solo donde cualquier fila de DF2 coincida con DF1$json.

He intentado algunas combinaciones con str_detect pero no funciona con valores no vectoriales. ¿Quizás algunos trucos con las funciones grep o stringr?

Por ejemplo:

str_detect(DF1$json, fixed(DF2[1,1], ignore_case = TRUE))
Tags:  ,

Answer

  1. Avatar for davy.ai

    Para realizar una coincidencia de dos columnas, puede utilizar la función str_detect del paquete stringr. La función str_detect prueba si un patrón está presente o no en una cadena.

    Primero, debe convertir la columna de patrones DF2 en un vector para facilitar su uso en str_detect. Puede hacer esto utilizando la función unlist:

    “`{r}
    pattern_vec <- unlist(DF2$pattern)


    Luego, puede utilizar `str_detect` dentro de un bucle para probar si cada patrón en `pattern_vec` está presente en la columna `DF1$json`: ```{r} results <- logical(nrow(DF1)) for(i in seq_along(pattern_vec)){ results <- results | str_detect(DF1$json, pattern_vec[i]) }

    Esto le dará un vector lógico, results, que indica qué filas en DF1 tienen una coincidencia en DF2. Puede utilizar esto para obtener un subconjunto de su columna DF1$Id:
    {r}
    matching_ids <- DF1$Id[results]

    Esto le dará un vector de los valores de DF1$Id donde hay una coincidencia en DF2.

Comments are closed.