11

我已经开始学习 R 并试图创建如下向量:

c(""check"")

我需要输出为:“检查”。但是我收到语法错误。创建向量时如何转义引号?

4

3 回答 3

24

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

另一种方法是在包含双引号的字符表达式周围使用单引号。

> x <- 'say "Hello!"'
> x
[1] "say \"Hello!\""
> cat(x)
say "Hello!"
于 2013-03-04T15:34:22.737 回答
13

其他答案很好地展示了在创建向量时如何处理字符串中的双引号,这确实是您在问题中提出的最后一件事。但鉴于您还提到了displayoutput,您可能需要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"

对于它的价值,该sQuote函数用单引号做同样的事情。

于 2013-03-04T17:10:06.503 回答
6

使用反斜杠:

x <- "say \"Hello!\""

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

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

R> cat(x)
say "Hello!"
于 2013-03-04T15:00:50.030 回答