r अक्षर "y" वर्णानुक्रम में छांटने के बाद "i" के बाद आता है




locale alphabetical-sort (2)

फ़ंक्शन sort(x) का उपयोग करते समय, जहाँ x एक वर्ण है, अक्षर "y" अक्षर के ठीक मध्य में कूदता है, "i":

> letters
[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" "t"
[21] "u" "v" "w" "x" "y" "z"

> sort(letters)
[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "y" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s"
[21] "t" "u" "v" "w" "x" "z"

इसका कारण यह हो सकता है कि मैं लिथुआनिया में स्थित हूं, और यह "मोन-जैसा" अक्षरों की छंटाई है, लेकिन मुझे सामान्य छंटाई की आवश्यकता है। मैं R कोड के अंदर छँटाई विधि को सामान्य में कैसे बदलूँ?

मैं Win7 पर R 2.15.2 का उपयोग कर रहा हूं।


यदि आप इसे अस्थायी रूप से करना चाहते हैं, तो devtools प्रदान करता है:

library(devtools)
with_collate("C", sort(letters))
# [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s"
# [20] "t" "u" "v" "w" "x" "y" "z"
with_collate("lt_LT", sort(letters))
# [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "y" "j" "k" "l" "m" "n" "o" "p" "q" "r"
# [20] "s" "t" "u" "v" "w" "x" "z"

आपको उस स्थान को बदलने की आवश्यकता है, जिसमें R चल रहा है। या तो अपने पूरे विंडोज इंस्टाल के लिए (जो सबॉप्टीमल लगता है) या R सेशन के भीतर करें:

Sys.setlocale("LC_COLLATE", "C")

आप वहां "C" स्थान पर किसी भी अन्य मान्य लोकेल स्ट्रिंग का उपयोग कर सकते हैं, लेकिन आपको जो पत्र चाहिए उसके लिए आपको क्रमबद्धता प्राप्त करनी चाहिए।

अधिक के लिए ?locales पढ़ें।

मुझे लगता है कि यह बहन फ़ंक्शन Sys.getlocale() को ध्यान देने योग्य है, जो स्थानीय पैरामीटर की वर्तमान सेटिंग पर सवाल Sys.getlocale() । इसलिए आप कर सकते हैं

(locCol <- Sys.getlocale("LC_COLLATE"))
Sys.setlocale("LC_COLLATE", "lt_LT")
sort(letters)
Sys.setlocale("LC_COLLATE", locCol)
sort(letters)
Sys.getlocale("LC_COLLATE")

## giving:
> (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"

कौन सा कोर्स है जो @ हैडली का उत्तर दिखाता with_collate() कुछ और अधिक सफलतापूर्वक करने के बाद एक बार जब आपने डेस्टटूल स्थापित किया है।





alphabetical-sort