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.

¿Cómo estandarizar los caracteres no numéricos en una columna?

Necesito darle el mismo nombre a los caracteres no numéricos en una columna compuesta por universidades. Un ejemplo de mi tabla se muestra a continuación. Por supuesto, hay muchos otros nombres de universidades, personas y columnas. Solo necesito cambiar esta parte del marco de datos.

Nombre Afiliación
Jose Ramayana UNIVERSIDAD OXFORD
Andres Andresius UNIVERSIDAD OXFORD
Pepito Perez UNIVERSIDAD NACIONAL
Cacolo Osorio Universidad Nacional de Bogotá
Maleja Patras Universidad del Valle
Tigre Tony Universidad Nacional
Pocho Valencia UNIVERSIDAD DEL VALLE
Puti Gutierrez UNIVERSIDAD OXFORD
Chuchi Lopez UPTC
Ganso Salazar UPTC
Santiago Andrade PONTIFICIA UNIVERSIDAD JAVERIANA
Andrés Tigreros JAVERIANA CALI

Estaba intentando usar este código, pero obtuve muchas replicaciones de la misma persona al menos 10 veces.

DB_CO1 <- DB_CO %>%
mutate(FinalAssociation = map(afiliación, ~DB_CO $ afiliación [str_detect (.x, DB_CO $ afiliación)])) %>%
unnest (cols = c(FinalAssociation))

Resultado deseado: que todos los valores en afiliación permanezcan iguales de alguna manera.

Nombre Afiliación
Jose Ramayana UNIVERSIDAD OXFORD
Andres Andresius UNIVERSIDAD OXFORD
Pepito Perez UNIVERSIDAD NACIONAL DE BOGOTÁ
Cacolo Osorio Universidad Nacional de Bogotá
Maleja Patras Universidad del Valle
Tigre Tony Universidad Nacional de BogotÁ
Pocho Valencia UNIVERSIDAD DEL VALLE
Puti Gutierrez UNIVERSIDAD OXFORD
Chuchi Lopez UPTC
Ganso Salazar UPTC
Santiago Andrade PONTIFICIA UNIVERSIDAD JAVERIANA CALI
Andrés Tigreros PONTIFICIA UNIVERSIDAD JAVERIANA CALI

Muchas gracias de antemano por su ayuda.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para dar el mismo nombre a los caracteres no numéricos en la columna “Afiliación”, se puede utilizar la función case_when() del paquete dplyr. Aquí hay un ejemplo de código:

    library(dplyr)
    
    # crear un vector con los nombres que se desea reemplazar
    replacement_names <- c("OXFORD UNIVERSITY", "UNIVERSIDAD NACIONAL DE BOGOTÁ", 
                           "UNIVERSIDAD DEL VALLE", "UPTC", "PONTIFICIA UNIVERSIDAD JAVERIANA",
                           "JAVERIANA CALI")
    names(replacement_names) <- c("Oxford University", "Universidad Nacional de Bogotá",
                                  "Universidad del Valle", "UPTC", "Pontificia Universidad Javeriana",
                                  "Javeriana Cali")
    
    # utilizar case_when() para reemplazar los nombres por los deseados
    df <- df %>% 
      mutate(Afiliación = case_when(Afiliación %in% names(replacement_names) ~ replacement_names[as.character(Afiliación)],
                                     TRUE ~ as.character(Afiliación)))
    

    Este código crea un vector nombrado replacement_names que contiene los nombres que se desean reemplazar como valores y los nuevos nombres como nombres. Luego, utiliza la función case_when() para reemplazar los nombres en la columna “Afiliación”. La función as.character() se utiliza para asegurarse de que los valores en la columna “Afiliación” sean cadenas de caracteres.

Comments are closed.