首页 > 解决方案 > 在 R 中使用 formattable() 时,逗号后的数字不会出现

问题描述

我正在使用 formattable 包来生成我的 data.frame 的表格视图。但是我注意到有些列没有显示逗号(十进制)后的数字。

例如:格式表中的“v”、“p”和“t”列省略了逗号后面的字符(十进制)。为什么会这样?

aa2<-read.table(text="Ano   v   u   a   p   ur  h   e   t
2005    1782135.22  113711.81   98964.84    2207446.25  3876.68 7085.74 3265.89 59030602.87
2006    1719687.83  167937.4    97068.3 2218090.61  3936.55 6811.86 2952.21 59030602.87
2007    1755637.78  122799.6    94299.72    2229590.5   3978.23 6858.66 3171.66 59030602.87
2008    1779051.85  97385.73    101739.73   2225127.88  3996.84 6929.01 2254.58 59030602.87
2009    1805123.7   74061.79    109175.68   2215819.96  4126.57 6771.5  1406.21 59030602.87
2010    1716896.85  168013.92   108014.05   2210652.42  4210.9  7162.69 1535.68 59030602.87
2011    1736892.8   151980.31   113991.8    2200158.22  4259.77 7759.18 1442.06 59030602.87
2012    1757330.63  133273.24   125825.1    2185550.21  4419.45 8129.58 1958.48 59030602.87
2013    1639912.63  248584.77   140183.71   2171799.74  4531.06 8687.48 2777.32 59030602.87
2014    1657021.54  227375.14   180036.19   2136407.51  4631.85 8724.39 2287.94 59030602.87
2015    1720644.41  151089.44   190536.46   2138270.92  4733.71 8911.75 2298.34 59030602.87
2016    1662281.39  202916.33   210776.21   2124964.42  4803.06 8575.97 2165.52 59030602.87
2017    1716427.7   136156.44   230587.13   2117936.68  4809.71 8386.94 2170.25 59030602.87
2018    1638715.79  204483.2    255703.3    2101912.82  4931.96 8366.64 2349.4  59030602.87
", sep="", header = TRUE)

aa2

#Formatar a tabela
formattable(aa2, list(
  'v' = color_tile("#00cccc","#0066cc"),
  'u' = color_tile("#00cccc","#0066cc"),
  'a' = color_tile("#00cccc","#0066cc"),
  'p' = color_tile("#00cccc","#0066cc"),
  'ur' = color_tile("#00cccc","#0066cc"),
  'h' = color_tile("#00cccc","#0066cc"),
  'e'= color_tile("#00cccc","#0066cc")
  ))

在此处输入图像描述

标签: rformattable

解决方案


它可能已经四舍五入了。我们可以通过在列顶部comma创建属性来避免formattablenumeric

library(dplyr)
library(formattable)
aa2 <- aa2  %>%
   mutate(across(v:t, ~ formattable::comma(., digits = 2, big.mark = "")))

formattable::formattable(aa2, list(
  'v' = color_tile("#00cccc","#0066cc"),
  'u' = color_tile("#00cccc","#0066cc"),
  'a' = color_tile("#00cccc","#0066cc"),
  'p' = color_tile("#00cccc","#0066cc"),
  'ur' = color_tile("#00cccc","#0066cc"),
  'h' = color_tile("#00cccc","#0066cc"),
  'e'= color_tile("#00cccc","#0066cc")
))

-输出

在此处输入图像描述


推荐阅读