Existe-t-il une fonctionnalité intégrée dans R pour trier les vecteurs de caractères prenant en compte les cas? sort
et order
ignorer le cas:Ne pas ignorer le cas dans le tri des chaînes de caractères
tv <- c("a", "A", "ab", "B")
sort(tv)
## [1] "a" "A" "ab" "B"
Ceci est ma solution à ce jour:
CAPS <- grep("^[A-Z]", tv)
c(sort(tv[CAPS]), sort(tv[-CAPS]))
## [1] "A" "B" "a" "ab"
J'ai eu exactement le problème inverse, à savoir mon LC_COLLATE par défaut était "C" et je voulais utiliser l'ordre insensible à la casse. Je n'ai rien trouvé de mieux que d'essayer quelques locales installées et de substituer la 3ème ligne de la fonction avec Sys.setlocale ("LC_COLLATE", "eu_ES.iso88591"). Je suis sûr que c'est faux. Quelle est la bonne façon de faire cela? –
Une meilleure méthode consiste à utiliser 'stringr :: str_sort' et vous pouvez assigner des paramètres régionaux pour obtenir un résultat cohérent. – dracodoc