列名中的 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₂"
我的目标是通过简单的 df
或 print(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
就像标题一样,我想在数据框的列名中加入一些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₂"
我的目标是通过简单的 df
或 print(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