【发布时间】:2018-02-14 18:57:13
【问题描述】:
代码如下。我想根据两个输入过滤 data.frame。 input$SelectGroup4 将是 data.frame 中的列名,input$subsetSelect 是该列中的值。这可能吗?注意:整个代码库要大得多,所以我只取出了这段代码的关键部分。这段代码可能不会自己运行,但这只是为了获得一个大致的想法。
library(shiny)
library(data.table)
ui = fluidPage(
uiOutput('textField'),
uiOutput('docIdField'),
fluidRow(column(4,textInput("keyword", "Enter keyword :", "WB")),
fluidRow(column(4, sliderInput("context", "Enter number of words for context :",
min = 1, max = 10,
value = 5))),
fluidRow(column(4,uiOutput('selectGroup4'))),
fluidRow(column(4,uiOutput('subsetSelect'))),
fluidRow(column(10,DT::dataTableOutput("kwicTable"))))
}
server = function(input,output){
df_corpus1 <- reactive({
dTemp = as.data.table(datasetInput())
dTemp = dTemp %>% filter(input$selectGroup4==input$subsetSelect)
})
output$kwicTable=renderDataTable({
dtemp = df_corpus1()
dtemp = corpus(as.data.frame(dtemp),text_field=input$textField,docid_field=input$docIdField)
x = kwic(x = dtemp,pattern=input$keyword,window=input$context)
x = as.data.table(x)
x[,4:6]
})
}
shinyApp(ui,server)
【问题讨论】:
-
你为什么使用
data.table和dplyr::filter?
标签: r shiny data.table