列名中的 Unicode

Unicode in column names

就像标题一样,我想在数据框的列名中加入一些Unicode字符。

玩具示例:

df<-data.frame(x=1:3, y=4:6)
 
(nm<-c('x\u00b2', 'y\u2082'))
"x²" "y₂"
 
colnames(df)<-nm
 
df
  x2 y2
1  1  4
2  2  5
3  3  6

如您所见,下标和上标已转换为“普通”数字。

再试一次:

 (nm<-c('x\u03B2', 'y\u2082'))
 "xβ" "y₂"
 
 colnames(df)<-nm
 
 df
  xß y2
1  1  4
2  2  5
3  3  6

现在希腊语 β 已转换为德语 ß(尽管我的 Windows 语言环境是波兰...)

最后,希腊的伽马好像就这样了:

 (nm<-c('x\u03B3', 'y\u2082'))
 "xγ" "y₂"
 
 colnames(df)<-nm
 
 df
  x<U+03B3> y2
1         1  4
2         2  5
3         3  6
Warning message:
In do.call(data.frame, c(x, alis)) :
  unable to translate 'x<U+03B3>' to native encoding

所以,总的来说:有没有办法避免将 Unicode 字符转换为其“最近的邻居”?

编辑

我知道调用 colnames(df) 会给出适当的结果:

    (nm<-c('x\u00b2', 'y\u2082'))
    "x²" "y₂"
     
    colnames(df)<-nm

    colnames(df)
    "x²" "y₂"

我的目标是通过简单的 dfprint(df) 调用获得它们。

我通过绕过colnames<-得到了要粘贴的字符:

attr(df,"names") <- nm
print(df)
  xβ y₂
1  1  4
2  2  5
3  3  6

colnames(df)
[1] "xβ" "y₂"

使用风险自负。

sessionInfo()
#R version 4.0.2 (2020-06-22)
#Platform: x86_64-apple-darwin17.0 (64-bit)
#Running under: macOS Catalina 10.15.7
#
#Matrix products: default
#BLAS:   /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecL#ib.framework/Versions/A/libBLAS.dylib
#LAPACK: /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libRlapack.dylib
#
#locale:
#[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8