我正在尝试为已经在R中本地实现的项目构建闪亮的应用程序。我在上述实现的语法上有问题,特别是在反应式输入方面。
当我在本地编写代码时,我有三个用户定义的函数-AnalysisofReturn,Visualizations和MCS,以及它们各自的输入。第一个是AnalysisofReturn,它从列表(“每日”,“每周”,“每月”,“季度”,“每年”)中输入一个字符串作为输入,然后从那里进行处理。如果我能理解我在这种情况下做错了什么,那么我很确定自己可以实现另外两个功能。我的第一个尝试是将基本代码与ui.R和server.R分开,后者不起作用。然后我将UDF放入server.R,它显示出了希望。据我了解,默认情况下,渲染功能族是反应性的,并且由于我使用的功能是UDF,因此我需要将其强制为反应性状态。在UDF中,我调用了我的数据框“ myTable”,因为我应该调用一个函数,该函数解决了我遇到的子集问题。当我这样删除UDF并分别进行操作时,我使代码在某一时刻运行,但是在这种情况下并没有呈现表。但是它应该与UDF一起使用,因为将来我将要创建更多的UDF,而且我也不想编写混乱的代码。我将在此添加数据集的一部分。我正在使用Shinydashboard作为模板,这对生成页面本身没有问题。
Frequency Date ETF Index Underlying Index Daily 02/06/2009 60 1361.36 Daily 03/06/2009 56.41 1338 Daily 04/06/2009 57.27 1328.86 Daily 05/06/2009 55.72 1321.77 Weekly 05/06/2009 55.72 1321.77 Weekly 12/06/2009 58.38 1347.5 Weekly 19/06/2009 54.72 1305.8 Weekly 26/06/2009 54.74 1305.82 Monthly 30/06/2009 54.26 1307.16 Monthly 31/07/2009 65.28 1425.4 Monthly 31/08/2009 70.71 1498.97 Monthly 30/09/2009 76.18 1552.84 Quarterly 30/06/2009 54.26 1307.16 Quarterly 30/09/2009 76.18 1552.84 Quarterly 31/12/2009 77.99 1580.77 Quarterly 31/03/2010 79.96 1584.28 Yearly 31/12/2009 77.99 1580.77 Yearly 31/12/2010 85.23 1658.3 Yearly 30/12/2011 58.8 1412.55 Yearly 31/12/2012 79.11 1604
ui.R
dHeader <- dashboardHeader(title="Leveraged ETF") dSidebar <- dashboardSidebar( selectInput( "Frequency", label = h3("Frequency"), choices = list("Daily" = "Daily", "Weekly" = "Weekly", "Monthly" = "Monthly", "Quarterly" = "Quarterly", "Yearly" = "Yearly"), selected = "Yearly"), selectInput( "Task", label = h3("Task"), choices = list("Back Testing" = "backTesting", "Monte Carlo Simulation" = "monteCarloSimulation"), selected = "Back Testing"), conditionalPanel("input.Task=='backTesting'", selectInput("displayedOutputs",label=h3("Results"), choices=list("First 9 values"="nineValues","Summary Statistics"="summaryStatistics","Charts"="charts"), selected="First 9 values")), conditionalPanel("input.Task=='monteCarloSimulation'", selectInput("displayedOutputs",label=h3("Results"), choices=list("Simulations"="simulations","Simulation Graph"="simulationGraph"), selected="Simulations")) ) dBody <- dashboardBody(tableOutput('Results') ) ui <- dashboardPage(dHeader,dSidebar,dBody)
server.R
server <- function(input, output, session) { #______________________________________________________________ AnalysisofReturn <- function(Freq) #Function to calculate all the relevant, time point-to-time point data { setwd("//SPVIPH07/testvip0002/03.Individual/Ramachandran/Shiny Practice") InputData <- as.data.frame(read.csv("Input/Dataset for R.csv",header=TRUE)) myTable <- reactive({subset(InputData,ï..Frequency==Freq)}) myTable()$ï..Frequency <- NULL myTable()$Date <- as.Date(myTable()$Date,format='%d/%m/%Y',origin="1970-01-01") myTable()$ETF.Return <- as.numeric(c("-",diff(log(myTable()$ETF.Index)))) myTable()$Index.Return <- as.numeric(c("-",diff(log(myTable()$Underlying.Index)))) myTable()$Multiple <- myTable()$ETF.Return/myTable()$Index.Return myTable()$Non.Regular.Movement <- ifelse(myTable()$Multiple<0,1,0) myTable()$Non.Regular.Positive.Movements <- ifelse(myTable()$Non.Regular.Movement==1 & myTable()$ETF.Return>0,1,0) myTable()$Absolute.Deviation.From.Ideal.In.Basis.Points <- round(abs(myTable()$ETF.Return-(2*myTable()$Index.Return))*10000,digits=0) } output$Results <- renderDataTable({AnalysisofReturn(input$Frequency)}) }
我希望仪表板向我显示结果表。但我收到错误消息
警告:错误
我正在尝试为已经在R中本地实现的项目构建闪亮的应用程序。我在上述实现的语法上有问题,特别是在反应式输入方面。当...