R 中的 Unicode 变量名

Unicode Variable Names in R

我正在做一个玩具项目并尝试使用一些 unicode 变量名来匹配我试图实现的论文。

以下代码在 Windows 上的 R 3.4.3(RStudio 版本 1.1.456)和 OSX 上的 R 3.5.1 上运行良好:

> µ  <- 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:seems like 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

使用 Ben Bolker we determined the issue was that the current session was using character encoding Windows-1252,它有一些非 ASCII 字符,但不多。这是尽管 RStudio 将文件保存为 UTF-8。

似乎无法尝试更改 运行ning R 会话的当前排序规则?至少在 Windows 我收到警告(参见问题和 here)。

我有一个部分解决方案,如果有人发现自己处于这样的情况下,他们得到了这样的文件并且想要 运行 它并可以交互式访问结果,则以下方法主要有效(变量将被翻译成 Win-1252):

> source('utf-8-file.r', encoding='UTF-8')

我会很高兴看到更好的解决方案,它允许编辑和 运行 文件并将这些片段输入 Windows 上的 RStudio 控制台。