首页 > 解决方案 > 可以使用“sprintf”功能更改列的格式吗?

问题描述

我正在使用 Rmarkdown 工具制作报告并使用 Kable 包生成表格。

我使用“sprintf”函数以百分比格式携带我的结果值,到目前为止一切正常。问题是我有一个表,其中包含一个我不想成为百分比的字段,但是使用该函数,表中的所有值都转换为百分比。

我的代码是这样的:

library(kableExtra)
matrix1<-function(matriz_deriv)

z12 <- matrix(sprintf("%.2f%%",100*matrix1), 
            nrow=nrow(matrix1), 
            ncol=ncol(matrix1))

colnames(z12) <- c("Month","value")

kable(z12, "latex", caption = "Matrix1", 
            booktabs = T) %>%
kable_styling(latex_options = c("striped", "hold_position"))

代码工作正常,但我只需要将百分比应用于“值”列而不是“月”列,并使用 sprintf 函数将百分比应用于显示月份百分比的完整矩阵。

你知道如何处理这个问题吗?

我尝试了几种替代方法,但都没有成功。我附上带有百分比的矩阵结果的图像

标签: rformatr-markdownkable

解决方案


应用于sprintf要格式化的列:

library(kableExtra)

set.seed(123)
z12 <- matrix(c(1:12, rnorm(12, 0.5, 0.25)), ncol = 2)
colnames(z12) <- c("Month","value")

z12[,2] <- sprintf("%.2f%%", 100*z12[,2])

kable(z12, "html", caption = "Matrix1", 
      booktabs = T) %>%
  kable_styling(latex_options = c("striped", "hold_position"))


推荐阅读