我正在尝试编写一个等效于scales::dollar
的函数,该函数在图形的开头添加了磅(£)符号。由于刻度代码非常健壮,因此我将其用作框架,只是将$替换为£。
一个简化的功能示例:
pounds<-function(x) paste0("£",x)
运行检查时,我得到以下信息:
Found the following file with non-ASCII characters:
pounds.R
Portable packages must use only ASCII characters in their R code,
except perhaps in comments.
Use \uxxxx escapes for other characters.
仔细阅读《 Writing R扩展指南》,它对如何解决此问题没有多大帮助(IMO)。它提到\ uxxxx并说它是指Unicode字符。
查找unicode字符会产生代码
£
,但是我可以找到的\uxxxx
指南很少,并且与W3schools上的Java有关。因此,我的问题是:
您如何使用\ uxxxx转义符在R函数中实现非Unicode字符的用法,使用该函数后如何影响此类字符的显示?
最佳答案
对于\ uxxxx转义,您需要知道字符的十六进制数。您可以使用charToRaw
确定它:
sprintf("%X", as.integer(charToRaw("£")))
[1] "A3"
现在,您可以使用它来指定您的非ASCII字符。
\u00A3
和£
代表相同的字符。另一种选择是使用
stringi::stri_escape_unicode
:library(stringi)
stringi::stri_escape_unicode("➛")
# "\\u279b"
这将通知您
"\u279b"
代表字符"➛"
。
关于r - 在包函数中使用非ASCII字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22223431/