如何在闪亮的renderTable中自定义数字列的格式?

时间:2017-05-17 15:58:41

标签: r shiny format

我想自定义格式化表格中的数字列。我希望科学格式的p值,以及0或2位小数的其他数字列。我怎样才能做到这一点?我试过了

output$addtable <- renderTable({ ...} , digits = -2)

但是将所有数字列转换为科学格式。

output$addtable <- renderTable({
    dataset <- datasetInput()
    d=dataset[which(dataset$gene==input$textgene),]
    names(d)=c("Gene","P","CmafUsed","NsnpsUsed","MinP","MinGene","Ratio")
    if(dim(d)[1]==0) {'No entry found'} else return(d)    
  })  

我正在寻找的是:

Gene    P       CmafUsed    NsnpsUsed   MinP    MinGene Ratio
GENE1   1.50E-05    0.20    12        4.62E-05  GENE2   1.11

2 个答案:

答案 0 :(得分:2)

既然你提到了科学,那就会想到:

df = data.frame(P = 1e-6, Rest = 1e-6)
df$P <- format(df$P, scientific = FALSE)
df$Rest <- format(df$Rest, scientific = TRUE)

答案 1 :(得分:2)

尝试添加:

  d$P <- sprintf("%7.2e",d$P)
  d$MinP <- sprintf("%7.2e",d$MinP)

我喜欢使用sprintf因为它适用于多种语言,所以我不太需要记住。但是像BigDataScientist建议的format也会起作用。