Ваш код требует нескольких изменений. Во-первых, когда вы получаете доступ к блестящему объекту пользовательского интерфейса в server.R
, вы должны использовать его как объект, а не как символ в кавычках
price <- getSymbols(input$stockInput,from='2017-01-01')
И функция getSymbols
без значения, установленного в качестве аргумента (auto.assign = F
), создает новый объект xts в названии запаса, данные которого запрашиваются, и поэтому в приведенном ниже коде я использовал его с настройкой auto.assign = F
так становится проще получить доступ к объекту price
для построения. В противном случае вам, возможно, придется получить значение внутри price
, используя get()
, а затем вывести его на график, как я прокомментировал.
server.R
library(quantmod)
shinyServer(function(input, output) {
output$distPlot <- renderPlot({
price <- getSymbols(input$stockInput,from='2017-01-01', auto.assign = F)
#plot(get(price), main = price) #this is used when auto.assign is not set by default which is TRUE
plot(price, main = input$stockInput) # this is when the xts object is stored in the name price itself
})})
ui.R
library(shiny)
shinyUI(fluidPage(
titlePanel("Stock Chart"),
sidebarLayout(
sidebarPanel(
#This is a dropdown to select the stock
selectInput("stockInput",
"Pick your stock:",
c("AMZN","FB","GOOG","NVDA","AAPL"),
"AMZN"),selected = "GOOG"),
# Show a plot of the generated distribution
mainPanel(
plotOutput("distPlot")
))))
Надеюсь, это прояснит!