我正在尝试构建一个闪亮的应用程序,我可以上传一个csv文件,并根据列名称,从program: program.o lib/libjp.a lib/libgr.so
- 应用程序显示基本统计信息(图形,描述性统计平均值,sd,var ...和一些统计测试)。
数据集没有问题,这些数据集已经在应用中。统计数据也没问题。
问题是如何使用新上传的csv文件中的列名来使libjp.a: pj.o pp.o
libgr.so: pg.o pr.o
工作。
这是我的代码轻量级版本:
用户界面:
selectInput
SERVER:
selectInput
答案 0 :(得分:1)
您需要使用uiOutput()和renderUI()函数。
library(shiny)
ui <- fluidPage(
titlePanel("xxx"),
sidebarLayout(
sidebarPanel(
fileInput("csvFile", "Drag cars.csv over here!"),
uiOutput("var_ui")
),
mainPanel(
textOutput("average"),
plotOutput("plot")
)
)
)
server <- function(input, output, session) {
data <- reactive({
file1 <- input$csvFile
if (is.null(file1)) {
return()
}
data = read.csv(file=file1$datapath)
data
})
output$average <- renderText({
paste("average is: ", mean(data()[,input$var]))
})
output$plot <- renderPlot({
boxplot(data()[,input$var])
})
output$var_ui <- renderUI({
selectInput("var", "choose variable:", choices= names(data()))
})
}
shinyApp(ui, server)
答案 1 :(得分:0)
您还可以在服务器中使用observe
。 observe
不返回任何内容。与reactive
不同,它立即(而不是延迟)响应。最好用于ip / op操作。
observe({
updateSelectInput(
session,
"var",
choices = names(data())
)
)}