2014-03-06 22 views
8

我正在尝试编写一个等效于scales::dollar的函数,它在图的开头添加一个磅(£)符号。由于scale代码非常强大,我将它用作框架,并简单地将$替换为£。在函数中使用非ASCII字符的包

精简功能例如:

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. 

翻翻写作R附加引导它不给很多帮助(IMO)如何解决这个问题。它提到了\ uxxxx并且说它指的是Unicode字符。

查找unicode字符会使我的代码为&#163,但我可以找到的\uxxxx的指导很少,并且与W3school上的Java有关。

我的问题是这样的:

你如何使用uxxxx转义以及如何使用影响这些字符的显示功能已被使用后的\实施中的R功能的非Unicode字符的使用?

+0

仅供参考 - 请参阅以下几乎相同的问题:http://stackoverflow.com/q/11452796/602276 – Andrie

+0

Cheers @Andrie - 不确定我在第一次使用Google搜索时没有发现该问题。 Karsten添加了有关如何识别unicode应该是什么的有价值的信息 - 我建议标记为重复,否则。 –

+0

由于这个问题也有答案,我们不能重复。有一个合并类似问题的过程,但我没有时间去做这件事。对我来说,这些问题是相互联系的。如果其他人想要开始合并,那也没关系。 – Andrie

回答

10

对于uxxxx转义\,你需要知道你的性格的十六进制数。您可以使用charToRaw确定它:

sprintf("%X", as.integer(charToRaw("£"))) 
[1] "A3" 

现在你可以使用这个来指定非ASCII字符。 \u00A3£代表相同的字符。

9

试试这个:

pounds<-function(x) paste0("\u00A3",x)