【发布时间】:2019-05-09 23:30:35
【问题描述】:
我正在尝试在 R Shiny 中自定义构建用户界面回归工具以进行练习(即我自己的 spss 版本用于我的一般用例)。我在从用户上传的数据集生成回归公式的关键步骤时遇到了麻烦。我希望用户能够从下拉菜单中选择一个因变量(并最终将这些生成的变量转换为我的服务器代码中的公式)。
我尝试在 selectInput() 函数的选择参数中使用 textOutput(names(userdata())),以便用户在上传数据集后可以选择哪些变量应该是因变量。但是,这会生成数据集的 属性 列表,而不是列本身的名称。
我已经研究过其他人已经做过的反应式数据集的其他用途,但似乎没有人完全按照我正在尝试做的事情去做,或者我正在搜索它们很糟糕。 (这似乎是 Shiny 最常见的可能用例,所以我无法想象如何还没有人发现这一点,但我找不到任何东西)
library(shiny)
library(wired)
ui <- fluidPage(
sidebarLayout(sidebarPanel(
fileInput("FileInput", "Input Your Data Set (Must be .csv)"),
wired_select(inputId = "responsevar",
label = "Dependent Varibale:",
choices = textOutput(outputId = "variable_names")
)
), #sidebar panel
mainPanel(
tabsetPanel(
tabPanel("Table",
DT::dataTableOutput("table")
)
) #tabset Panel
) #main panel
) #sidebarlayout
) #fluidpage
server <- function(input, output, session) {
datasetInput <- reactive({
infile <- input$FileInput
if (is.null(infile))
return(NULL)
read.csv(infile$datapath, header = TRUE)
})
output$table = DT::renderDataTable(datasetInput())
output$variable_names <- reactive({
if (is.null(datasetInput()))
return(NULL)
names(datasetInput())
})
} #server
shinyApp(ui = ui, server = server)
【问题讨论】: