una titulo tendencia parabola pairs línea linea hacer graficar grafica como columna agregar windows r macos locale solaris

windows - titulo - ¿Cuál es una forma confiable de obtener nombres de locale permitidos en R?



r grafica (2)

Estoy tratando de encontrar una manera confiable de encontrar códigos de configuración regional para pasar a Sys.setlocale .

La página de ayuda ?Sys.setlocale simplemente indica que los valores permitidos dependen del sistema operativo, y da estos ejemplos:

Sys.setlocale("LC_TIME", "de") # Solaris: details are OS-dependent Sys.setlocale("LC_TIME", "de_DE.utf8") # Modern Linux etc. Sys.setlocale("LC_TIME", "de_DE.UTF-8") # ditto Sys.setlocale("LC_TIME", "de_DE") # Mac OS X, in UTF-8 Sys.setlocale("LC_TIME", "German") # Windows

Bajo Linux, las posibilidades se pueden recuperar usando

locales <- system("locale -a", intern = TRUE) ## [1] "C" "C.utf8" "POSIX" ## [4] "af_ZA" "af_ZA.utf8" "am_ET" ## ...

No tengo máquinas Solaris o Mac a mano, pero supongo que esa salida puede generarse a partir de eso usando algo como:

library(stringr) unique(str_split_fixed(locales, "_", 2)[, 1]) #Solaris unique(str_split_fixed(locales, "//.", 2)[, 1]) #Mac

Las ubicaciones en Windows son mucho más problemáticas: requieren nombres largos con el formato "language_country", por ejemplo:

Sys.setlocale("LC_ALL", "German_Germany")

No puedo encontrar una referencia confiable para la lista de locales en Windows. La llamada al locale -a desde la línea de comando de Windows falla a menos que se instale cygwin, y luego devuelve los mismos valores que en Linux (supongo que está accediendo a los valores en una biblioteca C estándar).

No parece haber una lista de configuraciones regionales empaquetadas con R (pensé que podría haber algo similar para share/zoneinfo/zone.tab que contiene detalles de la zona horaria).

Mi mejor estrategia actual es navegar esta página web desde Microsoft y formar el nombre mediante la manipulación de la columna SUBLANG de la tabla.

http://msdn.microsoft.com/en-us/library/dd318693.aspx

Se necesitan algunas conjeturas, por ejemplo, la configuración regional relacionada con SUBLANG_ENGLISH_UK es English_United Kingdom .

Sys.setlocale("LC_ALL", "English_United Kingdom")

Donde hay variantes en diferentes alfabetos, se necesitan paréntesis.

Sys.setlocale("LC_ALL", "Uzbek (Latin)_Uzbekistan") Sys.setlocale("LC_ALL", "Uzbek (Cyrillic)_Uzbekistan")

Esta conjetura no sería tan mala, pero muchas ubicaciones no funcionan en absoluto, incluida la mayoría de las localidades indias.

Sys.setlocale("LC_ALL", "Hindi_India") Sys.setlocale("LC_ALL", "Tamil_India") Sys.setlocale("LC_ALL", "Sindhi_Pakistan") Sys.setlocale("LC_ALL", "Nynorsk_Norway") Sys.setlocale("LC_ALL", "Amharic_Ethiopia")

El cuadro de diálogo Región e idioma de Windows/System32/intl.cpl ( Windows/System32/intl.cpl , ver foto) tiene una lista similar pero no idéntica de locales disponibles, pero no sé de dónde se rellena.

Hay varias preguntas relacionadas:
1. Personal de Mac y Solaris: por favor, puede verificar si mi código para obtener configuraciones locales funciona en su sistema operativo.
2. Personas indias / paquistaníes / noruegas / etíopes que usan Windows: Por favor, ¿puede decirme qué Sys.getlocale() ?
3. Otras personas de Windows: ¿Existe alguna mejor documentación sobre qué locales están disponibles?

Actualización: Después de hacer clic en los enlaces en la pregunta que Ben B mencionó, me topé con esta mejor lista de locales en Windows. Cambiando manualmente la configuración regional mediante el cuadro de diálogo Región e Idioma y llamando a Sys.getlocale() , Sys.getlocale() que Nynorsk es "Norwegian-Nynorsk_Norway". Todavía hay muchas rarezas, por ejemplo.

Sys.setlocale(, "Inuktitut (Latin)_Canada")

esta bien pero

Sys.setlocale(, "Inuktitut (Syllabics)_Canada")

falla (como la mayoría de las lenguas indias). El inicio de R en cualquiera de estas configuraciones regionales provoca una advertencia, y la configuración regional de R vuelve a C

Todavía estoy interesado en saber de cualquier indio, etc., en cuanto a la ubicación que tiene.


En respuesta a tu primera pregunta, aquí está la salida en mi Mac:

> locales <- system("locale -a", intern = TRUE) > library(stringr) > unique(str_split_fixed(locales, "//.", 2)[, 1]) [1] "af_ZA" "am_ET" "be_BY" "bg_BG" "ca_ES" "cs_CZ" "da_DK" "de_AT" "de_CH" [10] "de_DE" "el_GR" "en_AU" "en_CA" "en_GB" "en_IE" "en_NZ" "en_US" "es_ES" [19] "et_EE" "eu_ES" "fi_FI" "fr_BE" "fr_CA" "fr_CH" "fr_FR" "he_IL" "hi_IN" [28] "hr_HR" "hu_HU" "hy_AM" "is_IS" "it_CH" "it_IT" "ja_JP" "kk_KZ" "ko_KR" [37] "lt_LT" "nl_BE" "nl_NL" "no_NO" "pl_PL" "pt_BR" "pt_PT" "ro_RO" "ru_RU" [46] "sk_SK" "sl_SI" "sr_YU" "sv_SE" "tr_TR" "uk_UA" "zh_CN" "zh_HK" "zh_TW" [55] "C" "POSIX"

No estoy seguro de lo que espero ver con Sys.setlocale() pero no produce ningún error:

> Sys.setlocale(locale="he_IL") [1] "he_IL/he_IL/he_IL/C/he_IL/en_AU.UTF-8" > Sys.getlocale() [1] "he_IL/he_IL/he_IL/C/he_IL/en_AU.UTF-8"


Gracias a todos. Fui a la URL que Richie sugirió, http://msdn.microsoft.com/en-us/library/dd318693.aspx , y probé LANG_BELARUSIAN en Windows. Eso no funcionó, así que corté el "LANG_" e incluí "BELARUSIAN" por sí mismo. Funcionaba bien.

> bk.date1

[1] "Ma 2012 14 de agosto 11:28:30"

ymd_hms (bk.date1, locale = "BELARUSIAN") [1] "2012-08-14 11:28:30 UTC"