重塑闪亮的桌子

Reshape a Shiny table

提问人:Hack-R 提问时间:12/1/2017 更新时间:12/1/2017 访问量:435

问:

我正在尝试创建一个(伪)混淆矩阵,其中用户可以设置用于分类的连续预测值的截止值。shiny

该表工作正常,但该表正在重新调整表。shinyxtable

如下所示:tableOutput

Var1     Var2    Freq
FALSE    FALSE   0.89
TRUE     FALSE   0.11
FALSE    TRUE    0.00
TRUE     TRUE    1.00

而它在 R 中的外观(不使用 )是:shiny

            FALSE      TRUE
  FALSE 0.8888889 0.1111111
  TRUE  0.0000000 1.0000000

这就是我想要的。

用户界面。R

pageWithSidebar(
  headerPanel('Pseudo Confusion Matrix'),
  sidebarPanel(
    numericInput('cutoff', 'ML Score Cutoff', .005,
                 min = .001, max = .5, step = .01)
  ),
  mainPanel(
    tableOutput('tab1')
  )
)

服务器。R

conf_mat <- data.frame(Y = train$Y,
                       Score = vscoreHex$p1_nml)

function(input, output, session) {

  cutoffs <- reactive({
    prop.table(table(conf_mat$Y > 0, conf_mat$Score >= input$cutoff),1) 
  })

  output$tab1 <- renderTable({
    cutoffs()
  })

}

示例数据

conf_mat <-
structure(list(Y = c(1, 0, 0, 0, 0, 0, 0, 0, 0, 0), Score = c(0.0107176032176252, 
0.00151343289438336, 0.00151343289438336, 0.00118417125401831, 
0.00151343289438336, 0.00151343289438336, 0.00151343289438336, 
0.00151343289438336, 0.000769538494171191, 0.0107176032176252
)), .Names = c("Y", "Score"), row.names = c(4477L, 14923L, 12792L, 
49773L, 27827L, 55772L, 36056L, 51987L, 71856L, 27531L), class = "data.frame")
r 闪亮

评论

0赞 Hack-R 12/1/2017
我已经找到了一个解决方案,但如果您的解决方案比我的更好,请添加您的答案。

答:

4赞 akrun 12/1/2017 #1

我们可以转换为 data.frame,然后使用as.data.frame.matrixrownames = TRUErenderTable

-
-
cutoffs <- reactive({
   as.data.frame.matrix(prop.table(table(conf_mat$Y > 0, conf_mat$Score >= input$cutoff),1))
 })

 output$tab1 <- renderTable({
  cutoffs()
  }, rownames = TRUE)

 }
-
-

-输出

enter image description here