2017-05-04 23 views
1

Shinyアプリケーションのテーブルで列の書式を設定しようとしていますが、10進数で表示しています。誰でも私がパーセントの書式設定を手伝うことができますか?ここに私のコードだ:Shinyの書式設定テーブル

シャイニーServerコード

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 
} 
+0

あなたはすでにここに入りましたか? http://stackoverflow.com/questions/34728353/datatable-in-r-formatting-rows-with-specific-value-category-to-a-percentage – BigDataScientist

+0

「formatPercentage」を使用して、[ここ](https: //rstudio.github.io/DT/functions.html) – NicE

+0

フォーマットの問題を解決するためにscales :: percent()を使用しました。 – thatsawinner

答えて

1

と呼ばれている機能です。

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