闪亮的格式表

时间:2017-05-04 14:53:06

标签: r shiny

我正在尝试在Shiny应用程序中格式化表中的列,但它呈现为十进制。任何人都可以帮助我获得百分比格式吗?这是我的代码:

闪亮的服务器代码

output$freqTopCount =  DT::renderDataTable({
  freqTopCount <- faultCodeFrequency(Data, input$brwyline)
  freqTopCount[, input$brwyline] <- percent(freqTopCount[, input$brwyline])
  freqTopCount 
}, options = list(paging = FALSE, searching = FALSE)
, rownames = TRUE, caption = "Frequency")

这里的函数被称为

faultCodeFrequency <- function(FuncData, line) {
  FuncData <- as.data.frame(FuncData[which(FuncData[, 15] == line),])
  # Calculate frequency of fault codes by brewery line.
  freq <- as.data.frame(ungroup(mutate(summarise(group_by(FuncData, BRWYLine,Fault_Code), n = n()), freq = n / sum(n))))
  # Format frequency to 4 decimal points.
  freq$freq <- round(freq$freq,4)
  # Put the top 5 fault code frequencies by brewery line in a data table.
  freqTop <- data.table(freq)[order(freq, decreasing = TRUE), head(.SD, 5), by="BRWYLine"]
  # Remove column n from data table.
  freqTop$n <- NULL
  # Swing freqTop table into a crosstab. Brewery Line columns, Fault Code rows.  The sum function sums each combination of BrwyLine/FaultCode in the data table.
  freqTop <- tapply(freqTop$freq,list(freqTop$Fault_Code, freqTop$BRWYLine), FUN=sum)
  # Calculate sum of frequencies.
  freqTopSum <- as.matrix(t(colSums(freqTop,na.rm=TRUE)))
  # Name sum row.
  rownames(freqTopSum) <- ('Total')
  # Add sum row to frequency matrix.
  freqTopCount <- rbind(freqTop, freqTopSum)
  result <- freqTopCount
  result
}

1 个答案:

答案 0 :(得分:1)

我使用了scale包中的percent()函数来解决这个问题。

freqTopCount[, input$brwyline] <- scales::percent(freqTopCount[, input$brwyline])