gpt4 book ai didi

r - 在数学或方程环境中将 R 矩阵转换为 LaTeX 矩阵

转载 作者:行者123 更新时间:2023-12-02 13:16:37 25 4
gpt4 key购买 nike

假设有一个 R 矩阵 x:

x <- structure(c(2, 3, 5, 7, 9, 12, 17, 10, 18, 13), .Dim = c(5L,2L), .Dimnames = list(NULL, c("X1", "X2")))

我正在使用 Markdown-pandoc-LaTeX 工作流程编写一份包含 LaTeX 方程的报告。 x 是这些方程中需要出现的矩阵之一。是否可以以编程方式呈现矩阵的 LaTeX 表示形式,如下所示?:

\begin{bmatrix}
2 & 12\\
3 & 17\\
5 & 10\\
7 & 18\\
9 & 13
\end{bmatrix}

理想情况下,报告代码应如下所示:

\begin{displaymath}
\mathbf{X} = `r whatever-R-code-to-render-X`
\end{displaymath}

但这可能很麻烦,所以我肯定会满足于简单的转换。

最佳答案

您可以使用 xtable 包 print.xtable 方法和一个简单的包装脚本来设置一些默认参数。

bmatrix = function(x, digits=NULL, ...) {
library(xtable)
default_args = list(include.colnames=FALSE, only.contents=TRUE,
include.rownames=FALSE, hline.after=NULL, comment=FALSE,
print.results=FALSE)
passed_args = list(...)
calling_args = c(list(x=xtable(x, digits=digits)),
c(passed_args,
default_args[setdiff(names(default_args), names(passed_args))]))
cat("\\begin{bmatrix}\n",
do.call(print.xtable, calling_args),
"\\end{bmatrix}\n")
}

似乎可以满足您的需求

x <- structure(c(2, 3, 5, 7, 9, 12, 17, 10, 18, 13), .Dim = c(5L,2L), .Dimnames = list(NULL, c("X1", "X2")))

bmatrix(x)
## \begin{bmatrix}
## 2.00 & 12.00 \\
## 3.00 & 17.00 \\
## 5.00 & 10.00 \\
## 7.00 & 18.00 \\
## 9.00 & 13.00 \\
## \end{bmatrix}

并且像您的示例一样不使用小数位。

bmatrix(x, digits=0)
## \begin{bmatrix}
## 2 & 12 \\
## 3 & 17 \\
## 5 & 10 \\
## 7 & 18 \\
## 9 & 13 \\
## \end{bmatrix}

关于r - 在数学或方程环境中将 R 矩阵转换为 LaTeX 矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20749444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com