2017-02-14 5 views
0

私は確かに質問に間違いがあると言いますが、Shinyのコンソールに1を入力するのと同じことを達成する方法はありますか?対話型の機能のためにコンソールに相当するコマンドを入力する方法は?

基本的に私は次のシャイニーで仕事をしたい:

この後
library(quantmod) 
library(fPortfolio) 


# Get data 

data1 <- getSymbols(c("VEU","SPY","VWO","AGG"), 
       from = "2016-01-01", 
       to = "2017-01-01") 
data2 <- do.call(merge, lapply(data1, function(x) Ad(get(x)))) 
data3 <- na.omit(ROC(data2,n = 1,"discrete")) 
colnames(data3) <- gsub(".Adjusted","",colnames(data3)) 
data4 <- as.timeSeries(data3) 

# fPortfolio options 

portfolioOptions<-portfolioFrontier(data4) 
plot(portfolioOptions) 

我々は、コンソールに次のように取得する:

Make a plot selection (or 0 to exit): 

1: Plot Efficient Frontier 
2: Add Minimum Risk Portfolio 
3: Add Tangency Portfolio 
4: Add Risk/Return of Single Assets 
5: Add Equal Weights Portfolio 
6: Add Two Asset Frontiers [LongOnly Only] 
7: Add Monte Carlo Portfolios 
8: Add Sharpe Ratio [Markowitz PF Only] 

Selection: 

が選択に入力1-8にどのような方法がありますそれに応じてプロットをレンダリングしますか?

+0

一連のチェックボックスは、あなたがやりたいことでしょう。 –

答えて

0

あなたは、それぞれの時間をプロットするためにどのプロットを指定するwhich引数を使用することができます。

library(shiny) 
shinyApp(ui=fluidPage(plotOutput("plot"), 
         textInput("num", "Enter choice", "1")), 
     server=function(input, output, session){ 
      plotlist <- reactiveValues() 
      observeEvent(input$num, { 
      if(!is.null(input$num)){ 
       if(input$num=="1") 
       plotlist$l <- 1 
       else 
       plotlist$l <- c(plotlist$l, as.numeric(input$num)) 
      }}) 
      output$plot <- renderPlot(plot(portfolioOptions, which=plotlist$l)) 
     }) 
+0

ありがとう!よく働く。 –

関連する問題