用有效数字渲染 xtable

Rendering xtable with significant digits

我希望能够在自动 运行 代码段中呈现 xtable,即不通过复制和粘贴,同时控制有效数字的数量。我知道在标准绘图设备上呈现 xtable 的唯一方法是使用 grid.table,但该方法会忽略 digits 指令并绘制所有可用数字。这是一个代码示例。有什么建议吗?

library(xtable)
library(gridExtra)

x = rnorm(100)
y = x + rnorm(100)
m = lm(y ~ x)

print(xtable(m)) #too many decimal places
print(xtable(m, digits = 2)) #this works
grid.table(xtable(m, digits=2)) #this doesn't!!!

None 这里的一些建议似乎对自动渲染很有用:

我不确定你的最终绘图设备,但出于某些目的你可以一起跳过 xtable

library("broom")
library("gridExtra")
x = rnorm(100)
y = x + rnorm(100)
m = lm(y ~ x)
DF <- broom::tidy(m)
DF[,2:4] <- round(DF[,2:4], 2)
DF[,5] <- format(DF[,5], scientific = TRUE, digits = 4)
grid.table(DF)

确保您拥有最新的 gridExtra。您还可以通过主题非常详细地控制 table 的外观(主题有一个小插曲)。

如果您将所有内容都转换为字符串,您应该能够完成这项工作:

x <- xtable(m)
x[] <- lapply(x, sprintf, fmt = "%0.2f")
grid.table(x)