我有一个Rmarkdown文档,需要在其中生成一个表。该表有几列,其中一些是货币,另一些是百分比。我需要产生一个pdf输出。
这就足够了:
library(data.table)
df <- data.table(x = letters[1:3], y = c(10.20, 20.501, 30.3222), z = c(0.6, 0.065, 0.95))
我知道我可以根据自己的需要设置每一列的格式,例如:
kable(df[, .(x, paste0("$", round(y, 0)), paste0(round(100 * z, 1), "%"))
此外,如果我有html输出而不是pdf输出,我可以做类似的事情
library(DT)
datatable(df) %>% formatCurrency(columns = 2, digits = 0) %>% formatPercentage(columns = 3, digits = 1)
我不能使用DT::datatable
方法,因为我的输出是pdf,并且DT不会产生pdf /乳胶输出。
我不想使用kable
方法,因为为每种不同的情况生成paste0
代码很麻烦。
类似于DT
方法的选项,可产生pdf输出。
我该如何实现?
答案 0 :(得分:0)
按照@Axeman的建议,至少可以使用scales
和formattable
软件包的替代方案:
# Option 1: scales
library(scales)
kable(df[, .(x, dollar(y, accuracy = 1), percent(z, accuracy = 0.1))])
# Option 2: formattable
detach("package:scales", unload = TRUE) #function percent has the same name
library(formattable)
kable(dt[, .(x, currency(y, digits = 0), percent(z, digits = 1))])