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