Supprimer les parenthèses et le texte à l'intérieur des chaînes dans R
Dans R, j'ai une liste de sociétés telles que:
companies <- data.frame(Name=c("Company A Inc (COMPA)","Company B (BEELINE)", "Company C Inc. (Coco)", "Company D Inc.", "Company E"))
Je veux supprimer le texte avec la parenthèse, se terminant avec la liste suivante:
Name
1 Company A Inc
2 Company B
3 Company C Inc.
4 Company D Inc.
5 Company E
Une approche que j'ai essayé a été de diviser la chaîne et ensuite utiliser ldply:
companies$Name <- as.character(companies$Name)
c<-strsplit(companies$Name, "\\(")
ldply(c)
Mais parce que pas tous les noms de société ont parenthèses parties, il échoue:
Error in list_to_dataframe(res, attr(.data, "split_labels"), .id, id_as_factor) :
Results do not have equal lengths
Je ne suis pas marié à la strsplit solution. Quel que soit le supprime de ce texte et les parenthèses ce serait bien.
source d'informationauteur aiolias
Vous devez vous connecter pour publier un commentaire.
Un
gsub
devraient travailler iciIci nous venons de remplacer les occurrences de "(...)" avec rien (également de supprimer tout espace). R fait-elle l'air pire que c'est avec l'ensemble de l'échappement que nous avons à faire pour la parenthèse, car ils sont des caractères spéciaux dans les expressions régulières.
Vous pouvez également utiliser:
Vous pouvez utiliser
stringr::str_replace
. C'est agréable parce qu'elle accepte facteur de variables.Et si vous voulez toujours utiliser
strsplit
vous pourriez faire