Vous devez changer la locale dans laquelle R s'exécute. Faites-le soit pour l'ensemble de votre installation Windows (ce qui semble peu optimal) soit à l'intérieur des sessions R via :
Sys.setlocale("LC_COLLATE", "C")
Vous pouvez utiliser n'importe quelle autre chaîne de locale valide à la place de "C"
là, mais cela devrait vous ramener à l'ordre de tri que vous souhaitez pour letters
.
Lisez ?locales
pour plus d'informations.
Je suppose qu'il vaut la peine de noter la fonction sœur Sys.getlocale()
, qui interroge le paramètre de locale actuel. Par conséquent, vous pourriez faire
(locCol <- Sys.getlocale("LC_COLLATE"))
Sys.setlocale("LC_COLLATE", "lt_LT")
sort(letters)
Sys.setlocale("LC_COLLATE", locCol)
sort(letters)
Sys.getlocale("LC_COLLATE")
## donnant :
> (locCol <- Sys.getlocale("LC_COLLATE"))
[1] "en_GB.UTF-8"
> Sys.setlocale("LC_COLLATE", "lt_LT")
[1] "lt_LT"
> sort(letters)
[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "y" "j" "k" "l" "m" "n"
[16] "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "z"
> Sys.setlocale("LC_COLLATE", locCol)
[1] "en_GB.UTF-8"
> sort(letters)
[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o"
[16] "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z"
> Sys.getlocale("LC_COLLATE")
[1] "en_GB.UTF-8"
ce qui est bien sûr ce que montre la réponse de @Hadley avec with_collate()
de manière un peu plus succincte une fois que vous avez installé devtools.