我正在尝试为已在本地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'",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,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)})
}
我希望仪表板向我显示结果表。但是我收到错误消息
警告:错误