Я работал над игрушечным проектом и пытался использовать некоторые имена переменных Юникода, чтобы соответствовать бумаге, которую я пытался реализовать.
Следующий код прекрасно работает на R 3.4.3 в Windows (версия RStudio 1.1.456) и R 3.5.1 на OSX:
> µ <- function(ß, n) ß * n
> µ(2, 3)
[1] 6
Этот код выдает следующую ошибку, где α набирается как ALT + 224:
> α <- 2
Error: unexpected input in "\"
Файл был сохранен как UTF-8, поэтому меня это удивляет.
make.names
согласуется с результатами выше:
> make.names('µ')
[1] "µ"
> make.names('α')
[1] "a"
Каково правило для букв не ASCII, почему mu и scharfes в порядке, а alpha - нет?
Редактировать: Вывод sessionInfo()
> sessionInfo()
R version 3.4.3 (2017-11-30)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
Matrix products: default
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] compiler_3.4.3 tools_3.4.3 yaml_2.2.0
Edit2: Это кажется, что Sys.setlocale
должно быть ответом, но вот что происходит, когда я пытаюсь это сделать:
> Sys.setlocale("LC_ALL", 'en_US.UTF-8')
[1] ""
Warning message:
In Sys.setlocale("LC_ALL", "en_US.UTF-8") :
OS reports request to set locale to "en_US.UTF-8" cannot be honored