R 将用户输入列添加到

R 将用户输入列添加到,r,shiny,user-input,interactive,R,Shiny,User Input,Interactive,我试图收集给定数据集的用户输入。我想插入一列,用户可以在其中确定是否想要拥有mtdata集中的一辆车。这完全是主观的,因为每个人的观点都不一样,所以我无法将其编程。有没有一种方法可以附加一个额外的列,可以是复选框或下拉菜单来识别用户想要拥有的汽车 library(shiny) shinyApp(ui = shinyUI(fluidPage( titlePanel("Interesting Cars"), sidebarLayout(

我试图收集给定数据集的用户输入。我想插入一列,用户可以在其中确定是否想要拥有mtdata集中的一辆车。这完全是主观的,因为每个人的观点都不一样,所以我无法将其编程。有没有一种方法可以附加一个额外的列,可以是复选框或下拉菜单来识别用户想要拥有的汽车

library(shiny)

shinyApp(ui = shinyUI(fluidPage(

             titlePanel("Interesting Cars"),

             sidebarLayout(
               sidebarPanel(
                 helpText("This is a side bar")),

               mainPanel(
                 tableOutput("view")
               )
             )
           )),
         server = function(input, output) {

             output$view <- renderTable({
               head(mtcars[, 1:4], n = 6)

             })

           })

这个怎么样,你可以使用DT库。通过添加过滤器选项,用户可以定义所需的不同组件,并查看出现的汽车

library(shiny)
library(DT)

shinyApp(ui = shinyUI(fluidPage(

    titlePanel("Interesting Cars"),

    sidebarLayout(
        sidebarPanel(
            helpText("This is a side bar")),

        mainPanel(
            DT::dataTableOutput("view")
        )
    )
)),
server = function(input, output) {

    output$view <- DT::renderDataTable({
        datatable(mtcars, 
                  filter = "top"
        )

    })

})

您是否只是在谈论将数据过滤到用户想要的内容?潜在的?但是,每个项目都必须单独选择。我不是在寻找数据表的功能,而是用户对数据集的看法。也许您可以提供更多的示例来演示mtcars数据集的含义。给我们举一个例子,说明你定义“有趣”的意思。它实际上完全是用户主观的。我把它改成了一个用户想拥有它吗?汽车。如果数据是静态的,很容易将其放入谷歌表单,但左侧导航将包含更改显示数据的控件。这不是我想要的。我希望添加一个额外的列,用户可以在其中输入Yes/No标志。DT包具有行选择功能,如果需要,它可以与过滤器选项一起使用。它的效果与带有复选框的额外列几乎相同。@user5029763您是正确的,但OP似乎希望在特定条件下添加一个物理列。我个人也只会使用过滤器,然后单击我想要的过滤器。@cdeterman对不起,我可能表达得不好。OP可以使用行选择来跟踪用户的意见,并输入$table_rows_selected等。@user5029763如果您是正确的,我会提供这一答案,但OP希望添加新列。如果您想提供一个答案来演示所选的$table_rows_输入,那么OP可能会有其他想法。
shinyApp(ui = shinyUI(fluidPage(

    titlePanel("Interesting Cars"),

    sidebarLayout(
        sidebarPanel(
            helpText("This is a side bar"),
            uiOutput("mpg"),
            actionButton("add_label", "Mark Interesting")
            ),

        mainPanel(
            DT::dataTableOutput("view")
        )
    )
)),
server = function(input, output) {

    values <- reactiveValues(
        mydata = mtcars
        )

    output$mpg <- renderUI({
        numericInput("mpg_input", "MPG Cutoff?",
                     value = 15
                    )
    })

    output$view <- DT::renderDataTable({
        datatable(values$mydata
        )
    })

    observeEvent(input$add_label, {
        validate(
            need(!is.null(input$mpg_input), "need mpg value")
        )
        values$mydata <- data.frame(values$mydata,
                               Interesting_Flag = 
                                   ifelse(values$mydata$mpg > input$mpg_input,
                                      "Interesting",
                                      "Not Interesting"))
    })
})