Я создал блестящее приложение для отображения графика котировок акций выбранной компании. Как отобразить цены в табличной форме? - PullRequest
0 голосов
/ 29 апреля 2020

Я создал блестящее приложение для отображения графика цены акций выбранной компании. Я хочу также отобразить цены в табличной форме, что я не могу сделать. При попытке получить сообщение об ошибке указано cannot coerce class ‘c("reactiveExpr", "reactive")’ to a data.frame. Код выглядит следующим образом:

# Load packages ----
library(shiny)
library(quantmod)

# отредактировал код. Это можно запустить напрямую

# User interface ----
ui <- fluidPage(
  titlePanel("stockVis"),

  sidebarLayout(
    sidebarPanel(
      helpText("Select a stock to examine.

        Information will be collected from Yahoo finance."),
      textInput("symb", "Symbol", "SPY"),

      dateRangeInput("dates",
                     "Date range",
                     start = "2013-01-01",
                     end = as.character(Sys.Date())),

      br(),
      br(),

      checkboxInput("log", "Plot y axis on log scale",
                    value = FALSE)

      #checkboxInput("adjust",
                    #"Adjust prices for inflation", value = FALSE)
    ),

    mainPanel(plotOutput("plot"), tableOutput("view")))
  )


# Server logic
server <- function(input, output) {

  dataInput <- reactive({
     getSymbols(input$symb, src = "yahoo",
               from = input$dates[1],
               to = input$dates[2],
               auto.assign = FALSE)
  })

  output$plot <- renderPlot({

    chartSeries(dataInput(), theme = chartTheme("white"),
                type = "line", log.scale = input$log, TA = NULL)
  })

  output$view <- renderTable({(dataInput )
  }, include.rownames = TRUE)

}

# Run the app
shinyApp(ui, server)

1 Ответ

0 голосов
/ 29 апреля 2020

Поскольку ошибка говорит, что это функция reactive, поэтому вы должны использовать ее следующим образом: dataInput(), а не dataInput

output$view <- renderTable({ dataInput() }, include.rownames = TRUE)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...