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

R 如何从输入的csv文件渲染绘图,r,shiny,R,Shiny,得到 错误:“closure”类型的对象不可子集: 要输入文件,输出表中的值,然后从值中渲染出绘图 服务器: 库(闪亮) 图书馆(dplyr) 图书馆(双标段) #为应用程序定义服务器 ShinyServer如果在renderPlot函数中使用df变量,但该变量未在此处定义,因此它会找到内置的df函数,该函数是F分布的分布函数。可能重复:此答案显示从上传的文件绘制表格和绘图。您正在renderPlot函数中使用df变量,但该变量未在此处定义,因此它会找到内置的df函数,该函数是F分布的分布函数。

得到

错误:“closure”类型的对象不可子集:

要输入文件,输出表中的值,然后从值中渲染出绘图

服务器:
库(闪亮)
图书馆(dplyr)
图书馆(双标段)
#为应用程序定义服务器

ShinyServer如果在
renderPlot
函数中使用
df
变量,但该变量未在此处定义,因此它会找到内置的
df
函数,该函数是F分布的分布函数。可能重复:此答案显示从上传的文件绘制表格和绘图。您正在
renderPlot
函数中使用
df
变量,但该变量未在此处定义,因此它会找到内置的
df
函数,该函数是F分布的分布函数。可能重复:此答案显示从上传的文件绘制表格和绘图。
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")
)

  )
)