在R中,有一种称为原始矢量/原始字符的东西。来自“rawToChar”和“charToRaw”功能等的那个。如果你将一个原始矢量放入控制台,它就会打印出来。一个这样的原始元素可以打印为“83”。现在我想检查对于给定的原始字符,它是否等于打印为“83”的原始字符。所以我想将原始字符硬编码到我的代码中进行比较。我该怎么做? 我找到的唯一方法是使用charToRaw(“ƒ”)。但是这仅适用于控制台。将ƒ放入RStudio文件的源代码很困难。试试吧:
print("ƒ")
这将作为输出:
[1]“Æ'”
如果print-statement在编译的RStudio文件中(它只能在控制台中按预期工作)。
答案 0 :(得分:2)
intToUtf8(8 * 16 + 3) == "ƒ"
#[1] TRUE
是原始值,即十六进制数。
您可以使用:
x <- rawToChar(as.raw(8*16+3))
Encoding(x) <- "latin1"
x == "ƒ"
#[1] TRUE
或者
{{1}}
在源代码中硬编码UTF-8字符是危险的,没有必要。
答案 1 :(得分:1)
我尝试了以下2,它适用于我
来自控制台
> print("ƒ")
[1] "ƒ"
在一个函数
中> for (i in 1:3) {
+ print("ƒ")
+ }
[1] "ƒ"
[1] "ƒ"
[1] "ƒ"
你可以打开文件 - &gt;重新打开编码 - &gt;选择UTF-8并尝试一次