r - 有没有办法在 R 中创建 LaTex 半矩阵?

标签 r matrix xtable

我正在尝试使用 xtable 包在 R 中创建打印质量的半矩阵。我可以毫无问题地创建完整的对称矩阵,但是当我仅提取下三角矩阵时,出现如下错误。

library(Matrix)
datamat1<-tril(data1) #extract lower triangle
library(xtable)
options(xtable.floating = FALSE)
options(xtable.timestamp = "")
xtable(datamat1, digits = 3)

我得到的错误是:“没有适用于 'xtable' 的方法应用于类的对象”c('dtrMatrix', 'ddenseMatrix', 'triangleMatrix', 'dMatrix', 'denseMatrix', 'Matrix' , 'xMatrix', 'mMatrix', 'Mnumeric', 'replValueSp')"

我知道将矩阵转换为半矩阵也会将其类转换为 dtrMatrix,但必须有某种方法以可发布的质量形式导出下三角矩阵。我也尝试过使用“zoo”包,但没有任何运气。这怎么办。

最佳答案

也许保留原始矩阵并将上三角形设置为缺失。那么您仍然会有一个 xtable 可以处理的常规 matrix 对象。下面的代码还显示了除了用于打印的 xtable 之外的几个其他选项。 (如果您需要 dtrMatrix 类对象进行进一步处理,您当然可以将其与下面创建的用于打印的对象分开创建。)

---
title: "My Title"
output: pdf_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo=FALSE)
library(tidyverse)
library(knitr)
library(gt)
library(xtable)
options(xtable.floating = FALSE)
options(xtable.comment = FALSE)
options(knitr.kable.NA="")
```

## Using `xtable`

```{r,  results="asis"}
set.seed(3)
m = matrix(1:16 + rnorm(16), nrow=4)
m[upper.tri(m)] = NA_real_

xtable(m, digits=3)
```

## Using `knitr::kable`

```{r}
colnames(m) = 1:ncol(m)
rownames(m) = 1:nrow(m)

kable(m, row.names=TRUE, digits=3)
```

## Using the `gt` package

```{r}
gt(as_tibble(m),
   rownames_to_stub=TRUE,
   digits) %>% 
  fmt_missing(columns=everything(), 
              missing_text="") %>% 
  fmt_number(columns=everything(), 
             decimals=3)
```

enter image description here

关于r - 有没有办法在 R 中创建 LaTex 半矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65636344/

相关文章:

r - 按 glm 模型摘要中的 p 值对 xtable() 输出进行排序

r - 在 xtable(anova(...)) 中包含模型规范

r - 如何在轴标签中制作平方根符号?

r - 按类别和计数的直方图

python - 在 Python 中为大型数据集创建邻接矩阵

对 RDLC 报告中的矩阵列进行排序

r - 在 knitr 中左对齐 xtable 标题

javascript - Shiny & networkD3 响应节点点击

r - 按两个因素拆分数据框

c - 在 C 中获取二维数组的输入