SORU
22 Ocak 2013, Salı


Harf "y" sonra "gelir&sıralarken " alfabetik olarak

Fonksiyonu x bir karakteri olduğu sort(x), kullanırken, "a" harfinin ortasına atlar, sonra sağ harfi "i": . y

> 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"

Nedeni Litvanya ' da bulunan biriyim, ve bu "-Litvanya" harf sıralama, ama ben normal sıralama lazım. olabilir Nasıl sıralama yöntemi normal içinde R kodu geri değiştirebilirim?

Windows 7 R 2.15.2 kullanıyorum.

CEVAP
22 Ocak 2013, Salı


R çalışan yerel ayarları değiştirmeniz gerekir. Ya bütün Windows altında görünüyor ()) R seans içinde yüklemek için:

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

"C" * * * * yerine herhangi bir geçerli yerel ayar dizesi kullanabilirsiniz, ama sizin istediğiniz dönmem gerekiyor.

Daha fazlası için ?locales okuyun.

Kardeş işlevi fazlalaştı sanırım yerel bir parametre geçerli ayarı sorgular Sys.getlocale(),. Dolayısıyla yapabilirsin

(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"

bu tabii ki @Hadley Cevabı gösterir with_collate() sonra biraz daha özlü bir şekilde yapıyordevtoolsyüklü.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Excel Functions

    Excel Functi

    4 NİSAN 2010
  • Mr. H

    Mr. H

    1 Temmuz 2012
  • The Pet Collective

    The Pet Coll

    5 Ocak 2012