【问题标题】:How to display text with Quotes in R? [duplicate]如何在 R 中显示带引号的文本? [复制]
【发布时间】:2013-02-18 17:04:22
【问题描述】:

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

c(""check"")

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

【问题讨论】:

  • 这个问题的公认答案在哪里?

标签: string r quotes


【解决方案1】:

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

【讨论】:

  • 如何将此双引号字符串分配给变量?
  • 需要注意的一点是 dQuote 和 sQuote 可以使用“智能”或“花式”引号代替纯 ASCII 引号字符。例如,如果您正在写入 CSV 文件,这可能不是您想要的。
【解决方案2】:

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

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

> x <- 'say "Hello!"'
> x
[1] "say \"Hello!\""
> cat(x)
say "Hello!"

【讨论】:

    【解决方案3】:

    使用反斜杠:

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

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

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

    R> cat(x)
    say "Hello!"
    

    【讨论】:

    • 我以前见过“如果你不构建向量,你就不需要c”的东西,我知道你不需要它,但只是好奇:是吗受伤了吗?
    • 不,它没有伤害,因为结果是一样的。我认为如果你只是做x &lt;- 3,你可以创建一个长度为1的向量,因为你可以在x上应用向量函数(例如length,names...)。
    猜你喜欢
    • 1970-01-01
    • 2017-09-06
    • 2018-11-15
    • 1970-01-01
    • 1970-01-01
    • 2014-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多