如何硬编码原始字符;83“;在RStudio?

如何硬编码原始字符;83“;在RStudio?,r,codepages,R,Codepages,在R中,有一种称为原始向量/原始字符的东西。来自“rawToChar”和“charToRaw”函数等的向量。如果将原始向量放入控制台,它将被打印。一个这样的原始元素可以打印为“83”。现在我想检查给定的原始字符是否等于打印为“83”的原始字符。所以我想把硬编码的原始字符放进我的代码中,与之进行比较。我该怎么做? 我找到的唯一方法就是使用charToRaw(“ƒ”)。但是,这只在控制台中起作用。将ƒ放入RStudio文件的源代码是困难的。试试看: print("ƒ") 这将作为输出: [1] “

在R中,有一种称为原始向量/原始字符的东西。来自“rawToChar”和“charToRaw”函数等的向量。如果将原始向量放入控制台,它将被打印。一个这样的原始元素可以打印为“83”。现在我想检查给定的原始字符是否等于打印为“83”的原始字符。所以我想把硬编码的原始字符放进我的代码中,与之进行比较。我该怎么做?
我找到的唯一方法就是使用charToRaw(“ƒ”)。但是,这只在控制台中起作用。将ƒ放入RStudio文件的源代码是困难的。试试看:

print("ƒ")
这将作为输出:
[1] “Æ”

如果print语句位于已编译的RStudio文件中(它仅在控制台中按预期工作)。

我尝试了以下2种方法,它对我有效

从控制台

> print("ƒ")
[1] "ƒ"
函数内

> for (i in 1:3) {
+   print("ƒ")
+ }
[1] "ƒ"
[1] "ƒ"
[1] "ƒ"

你能打开文件->用编码重新打开->选择UTF-8并再试一次吗?

我尝试了以下两种方法,它对我有效

从控制台

> print("ƒ")
[1] "ƒ"
函数内

> for (i in 1:3) {
+   print("ƒ")
+ }
[1] "ƒ"
[1] "ƒ"
[1] "ƒ"

您是否可以打开文件->使用编码重新打开->选择UTF-8并重试一次该
83
是一个原始值,即十六进制数

您可以使用以下选项:

intToUtf8(8 * 16 + 3) == "ƒ"
#[1] TRUE
还是这个

x <- rawToChar(as.raw(8*16+3))
Encoding(x) <- "latin1"
x == "ƒ"
#[1] TRUE

x83
是一个原始值,即十六进制数

您可以使用以下选项:

intToUtf8(8 * 16 + 3) == "ƒ"
#[1] TRUE
还是这个

x <- rawToChar(as.raw(8*16+3))
Encoding(x) <- "latin1"
x == "ƒ"
#[1] TRUE

x感谢您的快速回复。我尝试将编码更改为UTF-8,但没有效果。另外,只有当字符在编译文件中,然后在命令行中调用该文件中的函数时,才会出现问题。将for循环复制粘贴到控制台中有助于快速响应。我尝试将编码更改为UTF-8,但没有效果。另外,只有当字符在编译文件中,然后在命令行中调用该文件中的函数时,才会出现问题。将for循环复制粘贴到控制台对meDo有效您知道使用什么int吗?intToUtf8(83)和intToUtf8(8*16+3)给出的结果都不同于charToRaw(“ƒ”),您知道使用什么int吗?intToUtf8(83)和intToUtf8(8*16+3)给出的结果都不同于charToRaw(“ƒ”),谢谢,这很有效!起初我有点困惑,因为intToUtf8(8*16+3)打印为\u0083,但它实际上是相同的原始值。谢谢谢谢,这成功了!起初我有点困惑,因为intToUtf8(8*16+3)打印为\u0083,但它实际上是相同的原始值。谢谢