函数\Sexpr{}不识别矩阵对象。例如,我正在使用R中的“two”包设置一个考试问题。我通过R命令1. opt.obj.val 2. opt.sol生成了两个对象。对象opt.obj.val返回标量值,而opt.sol返回矩阵对象。我想在问题的解决方案中使用这两个对象。\Sexpr{}可以使用标量值,例如opt.obj.val对象。然而,它不承认opt.sol是一个矩阵对象。是否可以使用\Sexpr{}检索矩阵对象,或者是否有其他命令?
<<echo=FALSE, results=hide>>=
library(lpSolve)
P1 <- c(11, 12, 10, 9)
P2 <- c(6, 7, 500, 3)
P3 <- c(8, 8.5, 7.5, 9.5)
costs <- rbind(P1, P2, P3)
row.signs <- rep("=", 3)
row.rhs <- c(30, 30, 30) # rhs values of rows
col.signs <- rep("=", 4)
col.rhs <- c(15, 25, 40, 10) # rhs values of columns
opt.obj.val <- lp.transport(costs, "min", row.signs, row.rhs, col.signs, col.rhs)$objval
opt.sol <- lp.transport(costs, "min", row.signs, row.rhs, col.signs, col.rhs)$solution
@
\begin{question}
a) What is the optimal objective function value?
\begin{answerlist}
\item \Sexpr{opt.obj.val}
\item 780
\item 350
\item 560
\item 710
\end{answerlist}
\end{question}
\begin{solution}
\begin{answerlist}
\item True.
\item False.
\item False.
\item False.
\item False.
\end{answerlist}
The optimal objective function value is \Sexpr{opt.obj.val}.
The optimal solution is \Sexpr{opt.sol}.
\end{solution}
\exname{Transportation}
\extype{schoice}
\exsolution{10000}
\exshuffle{TRUE}发布于 2020-06-22 09:21:14
解决方案:使用\Sexpr{toLatex(opt.sol)}而不是\Sexpr{opt.sol}。
示例:包中提供的 赫斯和乔列斯基。
详细信息:
\Sexpr{x}命令主要用于将长度为1的原子向量嵌入到LaTeX文档中。由于矩阵是原子向量(带有dim属性),因此只显示矩阵的第一个元素,并警告只选择第一个元素。toLatex()是一个泛型函数,包含一对对象类的方法。exams包为matrix对象提供了方法。如果查看输出toLatex(opt.sol),就会看到它返回一个带有简单{array}的字符串。toLatex(x)方法将所有反斜杠转义两次,以便在\Sexpr{}中方便地使用。如果函数在\Sexpr{}之外使用,例如在R/Markdown练习中,则需要使用toLatex(x, escape = FALSE)。https://stackoverflow.com/questions/62506914
复制相似问题