Posteriormente a consultar especialistas en este tema, programadores de diversas ramas y maestros hemos dado con la respuesta al problema y la compartimos en este post.
Solución:
A gsub
debería trabajar aquí
gsub("\s*\([^\)]+\)","",as.character(companies$Name))
# [1] "Company A Inc" "Company B" "Company C Inc."
# [4] "Company D Inc." "Company E"
Aquí simplemente reemplazamos las ocurrencias de “(…)” con nada (también eliminamos cualquier espacio inicial). R hace que se vea peor de lo que es con todos los escapes que tenemos que hacer para los paréntesis ya que son caracteres especiales en expresiones regulares.
podrías usar stringr::str_replace
. Es bueno porque acepta variables de factor.
companies <- data.frame(Name=c("Company A Inc (COMPA)","Company B (BEELINE)",
"Company C Inc. (Coco)", "Company D Inc.",
"Company E"))
library(stringr)
str_replace(companies$Name, " \s*\([^\)]+\)", "")
# [1] "Company A Inc" "Company B" "Company C Inc."
# [4] "Company D Inc." "Company E"
Y si todavía quieres usar strsplit
Podrías hacerlo
companies$Name <- as.character(companies$Name)
unlist(strsplit(companies$Name, " \(.*\)"))
# [1] "Company A Inc" "Company B" "Company C Inc."
# [4] "Company D Inc." "Company E"
También podrías usar:
library(qdap)
companies$Name <- genX(companies$Name, " (", ")")
companies
Name
1 Company A Inc
2 CompanyB
3 Company C Inc.
4 Company D Inc.
5 CompanyE
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)