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.

Mueva la información a una nueva columna si el primer valor de la celda es un número de cuatro dígitos.

Tengo una columna con direcciones. Los datos no están limpios y la información incluye la calle y el número de la casa, o a veces el código postal y la ciudad. Me gustaría mover la información del código postal y la ciudad a otra columna con R, mientras que la calle y el número de la casa se mantienen en su lugar original. El código postal es una cadena de números de 4 dígitos. Agradezco cualquier sugerencia para una solución.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para lograr esto, podemos utilizar expresiones regulares y el paquete tidyr en R. Aquí tienes un enfoque posible:

    library(tidyr)
    
    # Crear algunos datos de ejemplo
    addresses <- c("Calle Principal 123, 1234 Ciudad", "4567 Pueblo, 5678 Ciudad")
    
    # Separar el código postal y la ciudad en una nueva columna
    new_addresses <- separate(addresses, 
                              col = "Address", 
                              into = c("Calle_Casa", "CodigoPostal_Ciudad"), 
                              sep = "(?<=[0-9])(?=[A-Za-z])")
    
    # Si es necesario, extraer el código postal de la nueva columna
    new_addresses <- separate(new_addresses, 
                              col = "CodigoPostal_Ciudad", 
                              into = c("CodigoPostal", "Ciudad"), 
                              sep = " ")
    
    # Ver el resultado
    new_addresses
    

    La función clave aquí es separate(), que puede dividir una sola columna en varias columnas en función de un separador. En este caso, utilizamos una expresión regular para encontrar el punto entre el número de casa o código postal y el nombre de la ciudad, y dividimos la columna de direcciones en consecuencia. Después, si se desea, se puede utilizar separate() nuevamente para dividir el código postal y la ciudad en columnas separadas.

    Ten en cuenta que este enfoque asume que el código postal siempre es una cadena de 4 dígitos y que no hay otros números en el nombre de la ciudad. Si los datos no cumplen con estas suposiciones, es posible que las expresiones regulares deban ajustarse en consecuencia.

Comments are closed.