如何在R中使用引号显示文本?

kni*_*ix2 9 string quotes r

我已经开始学习R并且正在尝试创建向量,如下所示:

c(""check"")
Run Code Online (Sandbox Code Playgroud)

我需要输出为:"check".但我得到语法错误.如何在创建向量时转义引号?

A5C*_*2T1 17

正如@juba所提到的,一种方法是直接转义引号.

另一种方法是在字符表达式周围使用单引号,其中包含双引号.

> x <- 'say "Hello!"'
> x
[1] "say \"Hello!\""
> cat(x)
say "Hello!"
Run Code Online (Sandbox Code Playgroud)


reg*_*etz 11

其他答案很好地展示了在创建向量时如何处理字符串中的双引号,这确实是您在问题中提出的最后一件事.但鉴于您还提到了显示输出,您可能需要dQuote牢记.如果你想用双引号括住字符向量的每个元素,这是很有用的,特别是如果你没有特定的需要或希望将引号存储在实际的字符向量本身中.

# default is to use "fancy quotes"
text <- c("check")
message(dQuote(text))
## “check”

# switch to straight quotes by setting an option
options(useFancyQuotes = FALSE)
message(dQuote(text))
## "check"

# assign result to create a vector of quoted character strings
text.quoted <- dQuote(text)
message(text.quoted)
## "check"
Run Code Online (Sandbox Code Playgroud)

对于它的价值,该sQuote功能使用单引号做同样的事情.


jub*_*uba 5

使用反斜杠:

x <- "say \"Hello!\""
Run Code Online (Sandbox Code Playgroud)

c如果你不构建向量,则不需要使用。

如果您想输出未转义的引号,您可能需要使用cat而不是print

R> cat(x)
say "Hello!"
Run Code Online (Sandbox Code Playgroud)

  • 我以前见过“如果你不构建向量,你就不需要`c`”的事情,我知道你不需要它,但只是好奇:它有伤害吗? (2认同)
  • 不,它没有伤害,因为结果是一样的。我认为,如果你只做 `x &lt;- 3`,你就可以创建一个长度为 1 的向量,因为你可以在 `x` 上应用向量函数(例如 `length`、`names`...)。 (2认同)