我有一个这样的数据框:
> summary
variable value
1 var1 5.810390e-06
2 var2 5.018182e-06
3 var3 5.414286e-06
4 var4 3.000779e+02
5 var5 -2.105123e+01
6 var6 8.224229e-01
我想使用knitr / kable在word文档中打印它。因此我使用了以下功能:
knitr::kable(summary,
row.names = FALSE,
col.names = c("Variable", "Mean"))
但结果并不令人满意:
我对变量4到6没问题,但变量1到3真的不容易以这种方式阅读......有没有办法控制这种格式?
答案 0 :(得分:7)
最常用的方法是自己进行格式化,并将字符变量的数据框发送给kable。例如,这不会给出最好的显示,但它显示了如何分别处理前3行:
df <- data.frame(variable = paste0("var", 1:6),
value =c(5.810390e-06, 5.018182e-06, 5.414286e-06, 3.000779e+02, -2.105123e+01, 8.224229e-01))
formatted <- df
formatted$value[1:3] <- format(df$value[1:3], digits = 3)
formatted$value[4:6] <- format(df$value[4:6], digits = 3)
knitr::kable(formatted)
这会产生以下输出:
答案 1 :(得分:5)
您还可以使用as.character()
和signif()
:
# using the data frame from the previous answer:
df <- data.frame(variable = paste0("var", 1:6),
value =c(5.810390e-06, 5.018182e-06, 5.414286e-06, 3.000779e+02,
-2.105123e+01, 8.224229e-01))
df %>% dplyr::mutate_if(is.numeric, funs(as.character(signif(., 3)))) %>%
kable(.)
给出了:
|variable |value |
|:--------|:--------|
|var1 |5.81e-06 |
|var2 |5.02e-06 |
|var3 |5.41e-06 |
|var4 |300 |
|var5 |-21.1 |
|var6 |0.822 |