如何从输入的csv文件渲染图

时间:2019-08-29 17:43:58

标签: r shiny

获取

  

错误:“关闭”类型的对象不可子集化:

想输入文件,表输出值,然后根据值绘制图形。

服务器:

library(shiny)
library(dplyr)
library(ggbiplot)
# Define a server for the Shiny app
shinyServer<- function(input, output) {

  # Load dataset
  output$contents <- renderTable({

    # input$file1 will be NULL initially. After the user selects
    # and uploads a file, head of that data file by default,
    # or all rows if selected, will be shown.

    #req(input$file1)

    df <- read.csv(input$file1$datapath,
                   header = input$header,
                   sep = input$sep,
                   quote = input$quote)

    if(input$disp == "head") {
      return(head(df))
    }
    else {
      return(df)

    }

  })

 # plotoutput 
  output$plot <- renderPlot({
    d <- df
    plot(d[,1], d[,2])
  })

}

    UI:

    library(shiny)

# Define UI for data upload app ----
ui <- fluidPage(

  # App title ----
  titlePanel("Uploading Files"),

  # Sidebar layout with input and output definitions ----
  sidebarLayout(

# Sidebar panel for inputs ----
sidebarPanel(

  # Input: Select a file ----
  fileInput("file1", "Choose CSV File",
            multiple = TRUE,
            accept = c("text/csv",
                       "text/comma-separated-values,text/plain",
                       ".csv")),

  # Horizontal line ----
  tags$hr(),

  # Input: Checkbox if file has header ----
  checkboxInput("header", "Header", TRUE),

  # Input: Select separator ----
  radioButtons("sep", "Separator",
               choices = c(Comma = ",",
                           Semicolon = ";",
                           Tab = "\t"),
               selected = ","),



  # Horizontal line ----
  tags$hr(),

  # Input: Select number of rows to display ----
  radioButtons("disp", "Display",
               choices = c(Head = "head",
                           All = "all"),
               selected = "head"),
  # Plot
  actionButton("newplot", "New plot")
),

# Main panel for displaying outputs ----
mainPanel(

  # Output: Data file ----
  tableOutput("contents"),

  # output: newplot
  plotOutput("plot")
)

  )
)

0 个答案:

没有答案