我正在尝试编写源代码,但writeLines
函数似乎产生了一个奇怪的输出。
cod <- 'filenam <- list.files(pattern = "\\.txt$")'
writeLines(cod, "source1.R")
当我尝试在bash中执行源时,我收到错误。
Rscript source1.R
错误:&#39;。&#39;是字符串开始时无法识别的转义 &#34;&#34;&#34;执行暂停
检查来源我意识到代码丢失了一个\
。当list.files(pattern = "\\.txt$")
函数导出为文件时,它已从list.files(pattern = "\.txt$")
修改为writeLines
。
知道为什么以及如何处理这个问题?
答案 0 :(得分:2)
你需要双重逃避:
cod <- 'filenam <- list.files(pattern = "\\\\.txt$")'
writeLines(cod, "source1.R")
生成一个看起来像这样的文件:
filenam <- list.files(pattern = "\\.txt$")
获取该信息,获取正确的行为,因为\\.
为了正则表达式而解析为\.
。
要了解这一点,请查看:
cat("\\.R$")
## \.R$