将复杂文本字符串保存为R中的对象

时间:2013-11-28 15:01:02

标签: r escaping system

我正在尝试使用system(mess)

从R中运行此终端命令
mess <- "sed -i -e '62i\ \\\usepackage[margin=2cm]{geometry}' intro-spatial-rl.tex"

但它仍然失败并出现以下错误:

Error: '\u' used without hex digits in character string starting ""sed -i -e '62i\ \\\u"

我也看到paste用于系统命令,但这也失败了。

可以使用不同的正则表达式程序,但认为这可能对其他人有用,并提高我对R如何处理字符的理解。谢谢!

1 个答案:

答案 0 :(得分:2)

您的问题是转义序列中\的数量不等。

R在此处看到两个转义序列:\\\u。第二个无效并给出错误。你可能也希望逃避第二个反斜杠,产生\\\\。同样地,您可能也想逃离\中的上一个,并留下\\ 

所有这一切,将在这个实例中完全用R代码替换sed调用。我理解它的方式你只想插入一行文字。这在R中很容易(虽然目前还不清楚你的输入和输出是什么)。