使用有效数字渲染xtable

时间:2016-02-23 20:54:37

标签: r xtable gridextra

我希望能够在自动运行的代码段中呈现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!!!

这里没有任何建议似乎对自动渲染有用: R: rendering xtable

2 个答案:

答案 0 :(得分:2)

我不确定你的最终情节设备,但出于某些目的,你可以一起跳过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。您还可以通过主题非常详细地控制表格的外观(主题上有一个小插图)。

答案 1 :(得分:2)

如果您将所有内容转换为字符串,那么您应该能够将其工作:

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

enter image description here