3

我尝试使用area()函数创建一个带有百分比值的表。但实际上它根本不起作用(即百分比值)。有谁知道如何修理它?

#library(magrittr)
#library(dplyr)
#library(formattable)
#library(scales)

set.seed(123)
df <- data.frame(id = 1:10, 
             a = rnorm(10), b = rnorm(10), c = rnorm(10))

df <- df %>% 
    mutate(a = percent(a), b = percent(b), c = percent(c))

# show percentage value without using area function
formattable(df, list(a = color_tile("transparent", "pink"),
                     b = color_tile("transparent", "pink"),
                     c = color_tile("transparent", "pink")))

# does not show percentage value
formattable(df, list(area(col = a:c) ~ color_tile("transparent", "pink")))

sessionInfo()

[1] formattable_0.2   DT_0.1            scales_0.4.0 
[4] tidyr_0.4.1       rCharts_0.4.5     dplyr_0.4.3      
[7] shiny_0.13.2     
4

2 回答 2

0

只是对 Liliana 评论的补充:

您还可以在首先创建自己的函数时指定小数位数,即:

percent2 <- function(x) {
   x <- percent(x, 2)
}

然后,您可以将其与具有预定义小数位数的波浪号一起使用。

formattable(df, list(area(col = a:c) ~ percent2))
于 2018-09-14T13:25:42.400 回答
0

到目前为止,我得到的最好结果是使用这段代码:

formattable(df, list(area(col = a:c) ~ percent))

但我不知道如何更改数字中的位数:(

于 2017-06-15T19:58:32.983 回答