除了 \Sexpr{} 之外,还有其他方法可以在 R 中编写矩阵对象吗?
Is there any alternative to \Sexpr{} to write a matrix object in R?
函数\Sexpr{}
无法识别矩阵对象。例如,我在 R 中使用 'exams' 包设置考试问题。我有两个通过 R 命令生成的对象 1. opt.obj.val 2. opt.sol。对象 opt.obj.val returns 标量值而 opt.sol returns 矩阵对象。我想在问题的解决方案部分使用这两个对象。 \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}
解决方法:用\Sexpr{toLatex(opt.sol)}
代替\Sexpr{opt.sol}
。
示例: hessian and cholesky,在包中提供。
详情:
\Sexpr{x}
命令主要用于将长度为1的原子向量嵌入到LaTeX文档中。由于矩阵是原子向量(具有暗淡属性),因此仅显示矩阵的第一个元素,并显示仅选择了第一个元素的警告。
- 函数
toLatex()
是一个通用函数,具有用于几个 类 对象的方法。 exams
包提供了 matrix
对象的方法。如果您查看输出 toLatex(opt.sol)
,您会发现它 returns 是一个带有直接 {array}
. 的单个字符串
- 默认情况下,
toLatex(x)
方法将所有反斜杠转义两次,以便在 \Sexpr{}
中方便地使用它们。如果函数在 \Sexpr{}
之外使用,例如在 R/Markdown 练习中,则需要使用 toLatex(x, escape = FALSE)
。
函数\Sexpr{}
无法识别矩阵对象。例如,我在 R 中使用 'exams' 包设置考试问题。我有两个通过 R 命令生成的对象 1. opt.obj.val 2. opt.sol。对象 opt.obj.val returns 标量值而 opt.sol returns 矩阵对象。我想在问题的解决方案部分使用这两个对象。 \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}
解决方法:用\Sexpr{toLatex(opt.sol)}
代替\Sexpr{opt.sol}
。
示例: hessian and cholesky,在包中提供。
详情:
\Sexpr{x}
命令主要用于将长度为1的原子向量嵌入到LaTeX文档中。由于矩阵是原子向量(具有暗淡属性),因此仅显示矩阵的第一个元素,并显示仅选择了第一个元素的警告。- 函数
toLatex()
是一个通用函数,具有用于几个 类 对象的方法。exams
包提供了matrix
对象的方法。如果您查看输出toLatex(opt.sol)
,您会发现它 returns 是一个带有直接{array}
. 的单个字符串
- 默认情况下,
toLatex(x)
方法将所有反斜杠转义两次,以便在\Sexpr{}
中方便地使用它们。如果函数在\Sexpr{}
之外使用,例如在 R/Markdown 练习中,则需要使用toLatex(x, escape = FALSE)
。