gpt4 book ai didi

r - 如何像 Microsoft Excel 表格一样格式化 R Shiny DataTable

转载 作者:行者123 更新时间:2023-12-04 11:57:34 25 4
gpt4 key购买 nike

我在 Microsoft Excel 中有一些表格,需要在 R Shiny App 中重新创建。 R 中的格式必须至少与原始上下文保持基本相同。

以下是原始表格的图像:

表 1

Excel Table 1

表 2

Excel Table 2

请注意格式:表头下方和总计上方有行,表头和总计为粗体,“每月账单”列中的数字以逗号分隔千位并带有美元符号,表2中的最后一个数字被框起来。

如果这些行不可重新创建,那就没问题了,但我至少需要能够将选定的主题、标题和总计加粗,并能够为每月账单列获取正确的数字格式。

我曾尝试使用 DT 包,但我不知道如何格式化行而不是列。我注意到 DT 对 JavaScript 函数使用了包装器,但我个人并不了解 JavaScript。有没有办法按照我需要的方式通过 R 包或 Javascript 进行格式化?

编辑:

虽然这很简单,但我不能仅仅包括表格的图像,因为有些数字将链接到用户输入并且必须能够更新。

最佳答案

pixiedust使进行特定于单元格的自定义变得容易。

T1 <- data.frame(Charge = c("Environmental", "Base Power Cost",
"Base Adjustment Cost", "Distribution Adder",
"Retail Rate Without Fuel", "Fuel Charge Adjustment",
"Retail Rate With Fuel"),
Summer = c(0.00303, 0.06018, 0.00492, 0.00501, 0.07314,
0.02252, 0.09566),
Winter = c(0.00303, 0.05707, 0.00468, 0.01264, 0.07742,
0.02252, 0.09994),
Transition = c(0.00303, 0.05585, 0.00459, 0.01264,
0.07611, 0.02252, 0.09863),
stringsAsFactors = FALSE)

T2 <- data.frame(Period = c("Summer", "Winter", "Transition", "Yearly Bill"),
Rate = c(0.09566, 0.09994, 0.09863, NA),
Monthly = c(118.16, 122.44, 121.13, 1446.92),
stringsAsFactors = FALSE)

library(shiny)
library(pixiedust)
library(dplyr)
options(pixiedust_print_method = "html")

shinyApp(
ui =
fluidPage(
uiOutput("table1"),
uiOutput("table2")
),

server =
shinyServer(function(input, output, session){

output$table1 <-
renderUI({
dust(T1) %>%
sprinkle(rows = 1,
border = "bottom",
part = "head") %>%
sprinkle(rows = c(5, 7),
cols = 2:4,
border = "top") %>%
sprinkle(rows = c(5, 7),
bold = TRUE) %>%
sprinkle(pad = 4) %>%
sprinkle_colnames(Charge = "") %>%
print(asis = FALSE) %>%
HTML()
})

output$table2 <-
renderUI({
T2 %>%
mutate(Monthly = paste0("$", trimws(format(Monthly, big.mark = ",")))) %>%
dust() %>%
sprinkle(rows = 1,
border = "bottom",
part = "head") %>%
sprinkle(rows = 4,
cols = 1,
bold = TRUE) %>%
sprinkle(rows = 4,
cols = 3,
border = "all") %>%
sprinkle(na_string = "",
pad = 4) %>%
sprinkle_colnames(Period = "",
Monthly = "Monthly Bill") %>%
print(asis = FALSE) %>%
HTML()

})

})
)

关于r - 如何像 Microsoft Excel 表格一样格式化 R Shiny DataTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46222415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com