如何在RStudio中对原始字符“83”进行硬编码?

时间:2016-11-23 11:41:22

标签: r codepages

在R中,有一种称为原始矢量/原始字符的东西。来自“rawToChar”和“charToRaw”功能等的那个。如果你将一个原始矢量放入控制台,它就会打印出来。一个这样的原始元素可以打印为“83”。现在我想检查对于给定的原始字符,它是否等于打印为“83”的原始字符。所以我想将原始字符硬编码到我的代码中进行比较。我该怎么做? 我找到的唯一方法是使用charToRaw(“ƒ”)。但是这仅适用于控制台。将ƒ放入RStudio文件的源代码很困难。试试吧:

print("ƒ")

这将作为输出:
[1]“Æ'”
如果print-statement在编译的RStudio文件中(它只能在控制台中按预期工作)。

2 个答案:

答案 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并尝试一次