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.

Dividir cadena y concatenar, eliminando palabra completa en R.

Estoy tratando de eliminar las palabras “Arts and Humanities” y “Social Sciences” de una cadena que contiene disciplinas de conocimiento concatenadas por “/” de la siguiente manera:

string = "Arts and Humanities Other Topics/Social Sciences Other Topics/Arts and Humanities/Social Sciences/Sociology"

He intentado esto usando el paquete stringr:

sapply(strsplit(string, "/"), function(x) paste(str_remove(x, "\\bArts and Humanities\\b|\\bSocial Sciences\\b"), collapse = "/"))

Pero la salida generada es ” Other Topics/ Other Topics///Sociology” y necesito una salida como esta:

"Arts and Humanities Other Topics/Social Sciences Other Topics/Sociology"

Gracias de antemano.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para eliminar las palabras específicas “Arts and Humanities” y “Social Sciences” de la cadena dada, puedes usar la función gsub() de la siguiente manera:

    “`{r}
    string <- “Arts and Humanities Other Topics/Social Sciences Other Topics/Arts and Humanities/Social Sciences/Sociology”

    new_string <- gsub(“\s?(Arts and Humanities|Social Sciences)\s?”, “”, string)

    Resultado

    new_string


    Esto debería darte el resultado requerido:

    [1] “Other Topics/Other Topics/Sociology”


    Ten en cuenta que todavía puede haber caracteres "/" adicionales en el resultado final. Para eliminar también esos, puedes usar nuevamente `gsub()` para reemplazar los caracteres "/" consecutivos por un solo carácter "/": ```{r} final_string <- gsub("/{2,}", "/", new_string) # Resultado final_string

    Esto debería darte el resultado final:

    [1] "Other Topics/Sociology"
    

    ¡Espero que esto te ayude! Avísame si tienes alguna pregunta más.

Comments are closed.