我想给用户一个选项,可以将不同的行(主题)分配给组。
理想情况下,可以突出显示行,然后在“分配给组:”字段中输入组名,然后将其保存。然后,他们可以选择一组新的行,并将其添加到另一个组中。依此类推,直到分配了所有所需的行。
这是我到目前为止所拥有的。在选择一组新行之前,我不知道如何保存结果。
library(shiny)
library(DT)
ui <- fluidPage(
fluidRow(
column(6,
DT::dataTableOutput('x1'),
textInput("assignGroup","Assign to group: ")),
column(6, DT::dataTableOutput('x2'))
)
)
server <- shinyServer(function(input, output, session) {
output$x1 = DT::renderDataTable(cars, server = FALSE)
output$x2 = DT::renderDataTable({
s <- input$x1_rows_selected
temp <- cars
temp$Experiment <- as.character("")
temp[s,"Experiment"] <- input$assignGroup
temp
}, server = FALSE)
})
shinyApp(ui, server)
谢谢,希望这一点很清楚!!!
答案 0 :(得分:1)
您可以观察“ input $ x1_rows_selected”,然后在事件上编辑表。要显示对该表的实时更改,可以添加一个反应性表。
希望此代码对您有用。
library(shiny)
library(DT)
ui <- fluidPage(
fluidRow(
column(6,
DT::dataTableOutput('x1'),
textInput("assignGroup","Assign to group: ")
),
column(6, DT::dataTableOutput('x2'))
)
)
server <- shinyServer(function(input, output, session) {
values <- reactiveValues(
df_data = cars,
temp = {
cars[,c("Experiment")]<-NA
cars
}
)
output$x1 = DT::renderDataTable(values$df_data, server = FALSE)
observeEvent(input$x1_rows_selected,
{
s<-input$x1_rows_selected
values$temp[s,"Experiment"]<-input$assignGroup
}
)
output$x2 = DT::renderDataTable(
values$temp, server = FALSE)
})
shinyApp(ui, server)