如何在 Shiny reactive table 子集上执行基本 R 函数?
How to execute base R function on Shiny reactive table subset?
我正在尝试创建一个 Shiny/flexdashboard Markdown 文件,并将以下内容插入 R 代码块中。基本上,它使用两个输入对输入数据帧进行子集化——第二个输入取决于第一个:
output$Box1 = renderUI(selectInput('sector',
'Sector',
c(levels(test$Sector),"pick one"),
"pick one") )
output$Box2 = renderUI(
if (is.null(input$sector) || input$sector == "pick one"){return()
}else selectInput('FA',
'Functional Area',
c(levels(test$FA[which(test$Sector == input$sector)]),"pick one"),
"pick one"))
subdata1 = reactive(test[which(test$Sector == input$sector),])
subdata2 = reactive(subdata1()[which(subdata1()$FA == input$FA),])
renderDataTable({subdata2()}, options = list(dom = 'lpt'))
现在,这可以很好地对数据框(扇区,然后是 FA)进行子集化,并且子集化的数据框通过 renderDataTable
.
在仪表板中可见
我想做的是在反应数据子集上执行类似 table
的操作,以在因子水平上创建应急 table:
data1 <- reactive(table(subdata2()$UserCountry))
然后进一步使用这个新的table,例如:
renderDataTable({data1()}, options = list(dom = 'lpt'))
当我尝试这个时,新的 table 没有呈现。
有没有办法运行成功?
尝试
data1 <- reactive(as.data.frame(table(subdata2()$UserCountry)))
虽然 table()
返回的值像矩阵一样打印在控制台上,但它们有自己独特的 class (table
)。它不由 renderDataTable()
处理,后者需要 data.frame
或 matrix
.
我正在尝试创建一个 Shiny/flexdashboard Markdown 文件,并将以下内容插入 R 代码块中。基本上,它使用两个输入对输入数据帧进行子集化——第二个输入取决于第一个:
output$Box1 = renderUI(selectInput('sector',
'Sector',
c(levels(test$Sector),"pick one"),
"pick one") )
output$Box2 = renderUI(
if (is.null(input$sector) || input$sector == "pick one"){return()
}else selectInput('FA',
'Functional Area',
c(levels(test$FA[which(test$Sector == input$sector)]),"pick one"),
"pick one"))
subdata1 = reactive(test[which(test$Sector == input$sector),])
subdata2 = reactive(subdata1()[which(subdata1()$FA == input$FA),])
renderDataTable({subdata2()}, options = list(dom = 'lpt'))
现在,这可以很好地对数据框(扇区,然后是 FA)进行子集化,并且子集化的数据框通过 renderDataTable
.
我想做的是在反应数据子集上执行类似 table
的操作,以在因子水平上创建应急 table:
data1 <- reactive(table(subdata2()$UserCountry))
然后进一步使用这个新的table,例如:
renderDataTable({data1()}, options = list(dom = 'lpt'))
当我尝试这个时,新的 table 没有呈现。
有没有办法运行成功?
尝试
data1 <- reactive(as.data.frame(table(subdata2()$UserCountry)))
虽然 table()
返回的值像矩阵一样打印在控制台上,但它们有自己独特的 class (table
)。它不由 renderDataTable()
处理,后者需要 data.frame
或 matrix
.