我遇到了以下问题。我为ifcase定义了一个Latex命令,可以从几个选项中进行选择。然后我有一些r代码确定ifcase中使用的数字通过\ Sexpr {}。我的问题是,当\ Sexpr产生NA时,那些也出现在输出文件中。我希望MWE有助于澄清我的意思,否则请不要犹豫。
['foo lorem ipsum \\pope\n24 dolor sit amet, consectetur adipisici elit\nExcepteur sint obcaecat cupiditat non \ngnu blu bar=1',
'foo lorem ipsum @>@!@ consectetur adipisici elit\ngnu blu bar=2',
'foo lorem ipsum\n23 dolor sit amet, consectetur adipisici elit\ngnu blu bar=3']
输出读取" B C NA"但我只想要" B C"
答案 0 :(得分:1)
这里的问题是\ifcase
只允许整数参数,NA看起来不像LaTeX。您需要将NA更改为某个不在案例列表中的整数值。例如,此版本将NA转换为-1,这将永远不会匹配大小写:
\documentclass{article}
\begin{document}
\SweaveOpts{concordance=TRUE}
\newcommand{\QPR}[1]
{
\ifcase #1
\or
A
\or
B
\or
C
\fi
}
<<g, echo=FALSE, results=tex,prefix=FALSE>>=
S=2:3
hideNA <- function(x) if (is.na(x)) -1 else x
@
\QPR{\Sexpr{hideNA(S[1])}}
\QPR{\Sexpr{hideNA(S[2])}}
\QPR{\Sexpr{hideNA(S[3])}}
\end{document}