【问题标题】:Formatting Table in Shiny在 Shiny 中格式化表格
【发布时间】:2017-05-04 14:53:06
【问题描述】:

我正在尝试在 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
}

【问题讨论】:

标签: r shiny


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2014-11-26
    • 2013-12-10
    • 2019-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多