使用R的闪亮应用程序和SQL Server

使用R的闪亮应用程序和SQL Server,r,shiny,R,Shiny,我想学习R的闪亮功能。我现在正在通读这篇文章,我正试图重现这篇文章。这个示例只是编写一个应用程序,允许您选择一个特定的数据集并下载它。我试图按照示例中的精确编码格式进行操作,但我希望从SQL server中提取数据,将其存储在我的应用程序中,并允许其他人下载。我在下面的代码中添加了SQL调用函数,位于被动函数之上 我试着执行下面的代码,它运行时没有产生任何反馈错误或输出。我假设我的问题是在代码的服务器部分调用数据集的方式。如果您对我的代码或其他资源有任何反馈,我们将不胜感激。谢谢 library

我想学习R的闪亮功能。我现在正在通读这篇文章,我正试图重现这篇文章。这个示例只是编写一个应用程序,允许您选择一个特定的数据集并下载它。我试图按照示例中的精确编码格式进行操作,但我希望从SQL server中提取数据,将其存储在我的应用程序中,并允许其他人下载。我在下面的代码中添加了SQL调用函数,位于被动函数之上

我试着执行下面的代码,它运行时没有产生任何反馈错误或输出。我假设我的问题是在代码的服务器部分调用数据集的方式。如果您对我的代码或其他资源有任何反馈,我们将不胜感激。谢谢

library(shiny)
library(RODBC)

ui <- fluidPage(
  
  # App title ----
  titlePanel("Downloading Data"),
  
  # Sidebar layout with input and output definitions ----
  sidebarLayout(
    
    # Sidebar panel for inputs ----
    sidebarPanel(
      
      # Input: Choose dataset ----
      selectInput("dataset", "Choose a dataset:",
                  choices = c("climate")),
      
      # Button
      downloadButton("downloadData", "Download")
      
    ),
    
    # Main panel for displaying outputs ----
    mainPanel(
      
      tableOutput("table")
      
    )
    
  )
)

server <- function(input, output) {
  
  conn <- odbcConnect("xyz")
  query <- " SELECT XYZ..."

dataset <- sqlQuery(channel = conn, query = query)

# Reactive value for selected dataset ----
datasetInput <- reactive({
  switch(input$dataset,
         "climate" = dataset)
})

# Table of selected dataset ----
output$table <- renderTable({
  datasetInput()
})

# Downloadable csv of selected dataset ----
output$downloadData <- downloadHandler(
  filename = function() {
    paste(input$dataset, ".csv", sep = "")
  },
  content = function(file) {
    write.csv(datasetInput(), file, row.names = FALSE)
  }
)

}

我认为您应该将服务器部分的前三行移到UI之前的最开始处。这至少是我使用类似应用程序的方式。