【发布时间】:2018-01-03 21:37:02
【问题描述】:
我正在尝试获取两个包含引号 ("") 的字符串,它们组合为字符/字符串向量或 R 函数粘贴,因此我可以将结果插入 openxlsx 包中 writeFormula 的参数 x 中。
一个例子是这样的
paste('HYPERLINK("file)',':///"&path!$C$1&TRIM(MID(CELL("filename",B',sep="")
我希望它应该产生这样的结果
HYPERLINK("file:///"&path!$C$1&TRIM(MID(CELL("filename",B
但它实际上产生的结果是在“:”前面带有反斜杠
[1] "HYPERLINK(\"file):///\"&path!$C$1&TRIM(MID(CELL(\"filename\",B"
我已经搜索了许多潜在的解决方案,例如将 paste 替换为 cat 或 add noquote function in front of paste,但输出不是字符向量。 toString 或 as.character 之类的函数可以将这些结果转换为字符串,但反斜杠也会返回。
非常感谢您对此提供的任何帮助。谢谢。
【问题讨论】:
-
没有斜线。 \" 只是 " 前面有一个转义字符。试试
cat(paste(...)) -
您好 thelatemail,感谢您的回答。我之前尝试过,但正如我所说,函数 cat 和 noquote 无法生成字符/字符串向量。
-
字符串中没有斜线。当 R print 是屏幕上的值时,它会添加它。你的粘贴工作得很好。使用
cat()代替默认打印来查看,而不是粘贴:cat(paste('HYPERLINK("file)',':///"&path!$C$1&TRIM(MID(CELL("filename",B',sep=""))。但cat()仅用于打印到屏幕上。粘贴的结果就是你想要的。查看this FAQ -
请重新阅读您找到的帖子。您显然没有仔细阅读它们。
grep("\\\\", "\'")将返回 FALSE。所以...没有斜线。