我有以下这些R函数:
swedish.weekday <- function(date = Sys.Date()) {
require(lubridate)
c("Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör")[wday(date)]
}
这将返回相当于Sun,Mon,Tue等的三个字母。
在将这个函数包含在软件包中之前,该软件包可以正常工作,在构建过程中该函数将转换为:
swedish.weekday <- function(date = Sys.Date()) {
require(lubridate)
c("Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör")[wday(date)]
}
我尝试将项目设置中的编码选项设置为ISO8859-1或WINDOWS-1252,但均无效。在Windows 7下使用64位R 3.1.2。
怀疑我需要在构建配置中进行一些更改,但是我迷失了什么-非常感谢任何帮助/指导!
根据上面评论中发布的链接,我仅通过使用Unicode转义就解决了这个问题:
day <- c("S\u00F6n", "M\u00E5n", "Tis", "Ons", "Tor", "Fre", "L\u00F6r")[wday(date)]
编辑:在将这些结果传递到外部系统(OLAP)时,我发现也有必要将这些结果的编码强制为ISO(“ latin-9”),以确保其不仅在屏幕上看起来正确,而且在远处就系统而言 day <- inconv(day, "UTF-8", "latin-9")
供参考...
有一种可移植的方法可以在R代码中的字符串中(仅)包含任意文本,该文本以\ uxxxx转义的形式提供Unicode。如果当前编码中没有任何字符,解析器会将字符串编码为UTF-8并将其标记为UTF-8。这也适用于数据集中的字符串:它们可以使用\ uxxxx转义符进行准备,也可以在UTF-8语言环境中以UTF-8进行编码,甚至可以通过“ iconv()”转换为UTF-8。如果这样做,请确保在DESCRIPTION文件的“从属”字段中具有“ R(> = 2.10)”(或更高版本)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句