我正在创建一个闪亮的应用程序来创建上传数据的图表。输入文件中的一列是一个类别。我想为每个独特的类别创建一个复选框,但我认为我缺少了一些东西。 ui.R
fluidPage(
titlePanel("Dynamic Check Boxes"),
fluidRow(
fileInput('file1', 'Upload a file'),
plotOutput('plot1'),
# This is where I'm trying to put the check boxes
uiOutput("ui")
)
)
这是我的服务器.R
categories = c()
test_data = NULL
function(input, output) {
# Trying to generate the check boxes
output$ui <- renderUI({
if (is.null(input$input_type))
return()
checkboxGroupInput('test', 'checkboxes', categories)
})
output$plot1 <- renderPlot({
inFile <- input$file1
if (is.null(inFile))
return(NULL)
test_data <<- read.table(inFile$datapath, head = F)
categories <<- unique(test_data$V1)
ggplot(test_data, aes(V2, V3)) + geom_point(aes(colour=V1))
})
}
我一直在使用的测试文件。
A 10 10
A 1 2
B 0 1
C 5 5
C 0 1
C 5 11
D 1 2
答案 0 :(得分:3)
您应该使用reactive
:
function(input, output) {
# read the file
test_data <- reactive({
inFile <- input$file1
if (is.null(inFile))
return(data.frame(V1=character(0), V2=integer(0), V3=integer(0)))
read.table(inFile$datapath, head = F)
})
# Trying to generate the check boxes
output$ui <- renderUI(checkBoxGroup('test', 'checkboxes', unique(test_data()$V1)))
output$plot1 <- renderPlot({
ggplot(test_data(), aes(V2, V3)) + geom_point(aes(colour=V1))
})
}