【发布时间】:2013-02-18 17:04:22
【问题描述】:
我已经开始学习 R 并且正在尝试创建如下向量:
c(""check"")
我需要输出为:“检查”。但是我收到语法错误。创建向量时如何转义引号?
【问题讨论】:
-
这个问题的公认答案在哪里?
我已经开始学习 R 并且正在尝试创建如下向量:
c(""check"")
我需要输出为:“检查”。但是我收到语法错误。创建向量时如何转义引号?
【问题讨论】:
其他答案很好地展示了在创建向量时如何处理字符串中的双引号,这确实是您在问题中提出的最后一件事。但鉴于您还提到了 display 和 output,您可能需要牢记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 函数用单引号做同样的事情。
【讨论】:
正如@juba 提到的,一种方法是直接转义引号。
另一种方法是在包含双引号的字符表达式周围使用单引号。
> x <- 'say "Hello!"'
> x
[1] "say \"Hello!\""
> cat(x)
say "Hello!"
【讨论】:
使用反斜杠:
x <- "say \"Hello!\""
如果不构建向量,则不需要使用c。
如果你想输出不转义的引号,你可能需要使用cat而不是print:
R> cat(x)
say "Hello!"
【讨论】:
c”的东西,我知道你不需要它,但只是好奇:是吗受伤了吗?
x <- 3,你可以创建一个长度为1的向量,因为你可以在x上应用向量函数(例如length,names...)。