How to replace a symbol by a backslash in R?

后端 未结 3 1042
攒了一身酷
攒了一身酷 2020-12-11 21:24

Could you help me to replace a char by a backslash in R? My trial:

gsub(\"D\",\"\\\\\",\"1D2\")

Thanks in advance

3条回答
  •  刺人心
    刺人心 (楼主)
    2020-12-11 22:08

    You need to re-escape the backslash because it needs to be escaped once as part of a normal R string (hence '\\' instead of '\'), and in addition it’s handled differently by gsub in a replacement pattern, so it needs to be escaped again. The following works:

    gsub('D', '\\\\', '1D2')
    # "1\\2"
    

    The reason the result looks different from the desired output is that R doesn’t actually print the result, it prints an interpretable R string (note the surrounding quotation marks!). But if you use cat or message it’s printed correctly:

    cat(gsub('D', '\\\\', '1D2'), '\n')
    # 1\2
    

提交回复
热议问题