如何对闪亮的renderTable中的整个列使用会计/货币格式?

问题描述 投票:0回答:1

我目前在尝试从renderTable格式化数据表中的列时遇到困难。该表是从我定义的数据帧呈现的。然后使用用户输入和子集过滤该数据帧,以形成实现输出时显示的数据帧。是否有一种简单的方法可以将会计/货币格式应用于数据表输出的一列?我在下面添加了代码以供参考:

UI:

tableOutput("datetest")

服务器:

df6 <- data.frame(Account_Num,Account_Num_Spec,Account_Name,Billing_Num,Date,Tran_Type,Transaction_Amt2,Bar_Date, Bar_Month,Trannn)
df6_subset <- reactive({

# # Filter Data By Type "Billed" that need to still be paid
df6$Date <- as.Date(df6$Date, "%m/%d/%Y")
filter1_data <- subset(df6, Tran_Type == "Bill")

# Function to filter between 2 Dates
d <- format(as.Date(input$DI))
d1 <- format(as.Date(as.character(input$DI)) - 60)
d2 <- format(as.Date(as.character(input$DI)) - 30)

filter2_data <- filter1_data[filter1_data$Date >= d1 & filter1_data$Date <= d2,]
filter3_data <- na.omit(filter2_data)

filter4_data <- filter3_data[filter3_data$Billing_Num %in% hold,]

filter5_data <- subset(filter4_data,select = -c(Tran_Type,Bar_Date,Date,Bar_Month,Trannn)) 

return(filter5_data)

})

output$datetest <- renderTable(df6_subset(), spacing=c("xs"), align = NULL)
r dataframe datatable shiny format
1个回答
0
投票

假设您正在使用dollar_format()进行自定义货币格式功能>

Foodollar <- scales::dollar_format(negative_parens = TRUE, prefix = "*@*")
set.seed(49) #just for reproducability

df <- data.frame(Let = LETTERS[1:10], Money=rnorm(10, 1000, 150))
df
#   Let     Money
#1    A  948.5101
#2    B  907.9918
#3    C  746.9616
#4    D  908.0822
#5    E 1011.4537
#6    F  902.0824
#7    G  828.3860
#8    H 1328.9407
#9    I 1059.6365
#10   J  990.0883

df$Money <- Foodollar(df$Money)
df
#   Let       Money
#1    A   *@*948.51
#2    B   *@*907.99
#3    C   *@*746.96
#4    D   *@*908.08
#5    E *@*1,011.45
#6    F   *@*902.08
#7    G   *@*828.39
#8    H *@*1,328.94
#9    I *@*1,059.64
#10   J   *@*990.09

df$Money向量从双精度转换为具有Foodollar指定格式的字符向量

换句话说,我们使用dollar_format创建函数,然后使用该函数重新定义所需的列。

© www.soinside.com 2019 - 2024. All rights reserved.