Я пытаюсь написать программу, которая делает коробочные диаграммы для моей команды на основе того, что им нужно. Я все время сталкиваюсь с ошибкой Error in writeImpl: Text to be written must be a length-one character vector
. Я считаю, что он исходит из того места, где я фильтрую свои данные в новый data.frame, чтобы создать коробчатую диаграмму. (возможно) Любая помощь, которую вы можете предоставить, будет принята с благодарностью. Вот код:
library(shiny)
All_Data <- data.frame(
Name = as.character(c("2015 Acidobacteria C1", "2015 Acidobacteria C1", "2015 Acidobacteria C1", "2015 Acidobacteria C1", "2015 Actinobacteria C1")),
Year = c(2015, 2015, 2015, 2015,2015),
Bacteria = as.factor(c("Acidobacteria", "Acidobacteria", "Acidobacteria", "Acidobacteria","Actinobacteria")),
Site = as.factor(c("C1", "C1", "C1", "C1","C1")),
Percents = as.numeric(c(5,2,3,5,5)),
stringsAsFactors = TRUE
)
ndata <-data.frame(
Name = as.character("Preset"),
Year = c("0"),
Bacteria = as.factor(c("0")),
Site = as.factor(c("0")),
Percents = as.numeric(c("0")),
stringsAsFactors = TRUE
)
# Define UI for application
ui <- fluidPage(
# Application title
titlePanel("Boxplot Maker"),
# Sidebar
sidebarLayout(
sidebarPanel(
h3("Which Data Sets Would You Like to Compare?"),
selectInput("Set1", "", choices = All_Data$Name),
selectInput("Set2", "",choices = All_Data$Name),
selectInput("factor","Based on Which Factor?", choices = c("Year", "Site", "Bacteria", "Site by Year", "Bacteria by Year", "Bacteria by Site by Year")),
textInput("title", h4("Title"), value = "Enter title..."),
actionButton("Submit", "Submit")
),
# Show a chosen plot
mainPanel(
uiOutput("data"),
plotOutput("plot")
)
)
)
# Define server logic
server <- function(input, output) {
output$data <- renderUI(
conditionalPanel( condition = "input.Submit >0",
ndata <- filter(All_Data, All_Data$Name == input$Set1 | All_Data$Name == input$Set2)
))
output$plot <- renderPlot(
boxplot(Percents ~ Year, data = ndata, main = input$title)
)
}
# Run the application
shinyApp(ui = ui, server = server)