【问题标题】:How to put \' in my string using paste0 function [duplicate]如何使用 paste0 函数将 \' 放入我的字符串中[重复]
【发布时间】:2017-09-06 05:25:24
【问题描述】:

我有一个数组:

t <- c("IMCR01","IMFA02","IMFA03")

我想让它看起来像这样:

"\'IMCR01\'","\'IMFA02\'","\'IMFA03\'"

我尝试了不同的方法,例如:

paste0("\'",t,"\'")
paste0("\\'",t,"\\'")
paste0("\\\\'",t,"\\\\'")

但没有一个是正确的。其他功能也可以。

【问题讨论】:

    标签: r string paste


    【解决方案1】:

    其实你的第二次尝试是正确的:

    paste0("\\'",t,"\\'")
    

    如果您想告诉paste 使用文字反斜杠,您需要将其转义一次(但不是两次,因为您需要在正则表达式模式中)。这会将以下内容输出到 R 中的控制台:

    [1] "\\'IMCR01\\'" "\\'IMFA02\\'" "\\'IMFA03\\'"
    

    这里的诀窍是反斜杠甚至在控制台输出中被 R 转义。如果您将t 写入文本文件,您将只能看到一个反斜杠:

    write(t, file = "/path/to/your/file.txt")
    

    但是为什么 R 在写入自己的控制台时需要转义反斜杠呢?一种可能性是,如果要编写文字\n,那么控制台实际上会将其解释为换行符。因此仍然需要 eacaping。

    【讨论】:

    • 非常感谢。我从来没有注意到这样的细节!
    • @FengChen - cat 是您检查“实际”字符串时的朋友:例如cat(paste0("\\'",t,"\\'"), "\n")
    猜你喜欢
    • 2014-07-13
    • 1970-01-01
    • 2012-10-07
    • 1970-01-01
    • 2021-06-27
    • 2019-04-05
    • 2011-08-17
    • 1970-01-01
    • 2018-11-12
    相关资源
    最近更新 更多