如何用 formattable() 包 R 中的小数点分隔符替换小数点分隔符?
How to replace decimal separator dot by decimal separator comma in formattable() package R?
我有一个数据库,我使用 formattable()
包显示了这些数据。但在我的国家,我们使用逗号作为小数点分隔符,这与 R 使用的标准点不同。
我怎样才能更简单地更改它,如果可能的话使用 %>%
运算符
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 <- 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")
))
您可以通过设置 decimal.mark = ","
:
来达到您想要的结果
library(formattable)
library(dplyr)
aa2 <- aa2 %>%
mutate(across(v:t, ~ formattable::comma(., digits = 2, decimal.mark = ",", 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")
))
我有一个数据库,我使用 formattable()
包显示了这些数据。但在我的国家,我们使用逗号作为小数点分隔符,这与 R 使用的标准点不同。
我怎样才能更简单地更改它,如果可能的话使用 %>%
运算符
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 <- 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")
))
您可以通过设置 decimal.mark = ","
:
library(formattable)
library(dplyr)
aa2 <- aa2 %>%
mutate(across(v:t, ~ formattable::comma(., digits = 2, decimal.mark = ",", 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")
))