【问题标题】:Print " (double quotation) using sprintf in R在 R 中使用 sprintf 打印“(双引号)
【发布时间】:2018-01-05 15:47:00
【问题描述】:

如何在R 中使用sprintf 在我的文本周围打印"

示例:

Name<-"X"
sprintf({"%s"},Name)

输出是:

[1] "X"

但我需要

[1] ""X""

【问题讨论】:

  • 你需要sprintf('"%s"',Name)cat检查它,即cat(sprintf('"%s"',Name), "\n")
  • @akrun,我需要“sprintf”,因为我已经使用“cat”完成了
  • @akrun 的意思是您可以通过使用cat() 对其进行测试来检查sprintf() 是否有效,而不是您应该使用cat() 而不是sprintf()

标签: r


【解决方案1】:

我想你想要的是shQuote你可以做

shQuote(Name)
# [1] "\"X\""

请注意,R 需要转义控制台中的内引号。它不会打印出类似于""X"" 的内容。但是,如果您 cat 的值不存在斜线

cat(shQuote(Name))
# "X"

【讨论】:

  • 谢谢,但没有@MrFlick,我想使用sprintf,因为我需要将sprintf 的输出分配给一个变量。所以我猜cat 没用。另外,shQuote(Name) 不正确。
  • @EsterSilva 这没有意义。你可以像sprintf 一样分配shQuote 的输出。你到底想用这个值做什么?您能否提供某种reproducible example 来说明您为什么需要引用此字符串值,以便可以测试和显示您所期望之外的可能解决方案以产生所需的结果。
【解决方案2】:

我不确定其他选项是否会对您有所帮助。不过你可以考虑一下:

选项可能是:

Name<-"X"
#> sprintf("'%s'",Name)
#[1] "'X'"

【讨论】:

    猜你喜欢
    • 2020-10-05
    • 2022-01-13
    • 1970-01-01
    • 2015-11-17
    • 2020-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多