我正在为人们创建pdf报告,并希望根据结果排除某些部分,以使人们更容易使用(例如,在此未发现问题,因此无需用空白解释)表格)。
我在代码块的标题中尝试了R块中的If语句和eval =''语句。当我只包含kableExtra创建的表时,它可以正常运行;但是,当我包含要解释的文字时,它给了我很多错误,例如“ \ T”是字符串中无法识别的转义符”
do_this = (nrow(tableone) >= 1)
print("message
\begin{Form}
\TextField[name = tableoneone, width = 10cm,
height = 3cm,
multiline=true]{}
\end{Form} ")
如果不通过检查(表1中的行数为零),我希望不要将其包含在最终文档中。然而,这种情况并非如此。是否有我做错的事情或其他我没有想到的方法?
答案 0 :(得分:1)
此问题是由您在字符串中使用反斜杠引起的。在R(以及大多数其他现代语言)中,backslashes in strings start an escape sequence。
如果要包含文字反斜杠,则需要将其加倍('\\'
)。
此外,print
不是在此处使用的正确函数。print
是一个(以某种方式命名不正确的)函数,用于以交互模式检查值 。 绝对不要在脚本中使用它们。而是使用writeLines
或cat
将文本输出到标准输出或文件,或使用message
创建非输出消息。
cat("\\begin{Form}
\\TextField[name = tableoneone, width = 10cm,
height = 3cm,
multiline=true]{}
\\end{Form}\n")