【发布时间】:2019-10-12 18:12:28
【问题描述】:
我正在开发一个数据输入屏幕,用于输入数据和创建数据表。我还需要根据用户输入在数据表中创建一列。为此,我在数据表中使用了转换函数。
执行此操作时,我收到一条错误消息“找不到函数”。
我还附上了我的调试代码
mkifields<-c("Financial_Year","Quarter","Month", "DB_Date","Actual_Date")
ui<- fluidPage(
titlePanel("Monthly Key Indicators"),
sidebarLayout(
sidebarPanel(width=3,
textInput("Financial_Year","Financial Year"),
selectInput("Quarter","Quarter",c("Q1","Q2","Q3","Q4")),
dateInput("Month","Month of Account", format="MM, yyyy"),
dateInput("DB_Date", "Detailed Booking Closing Date", format="dd-mm-yyyy"),
dateInput("Actual_Date","Actual date of uploading MKI",format="dd-mm-yyyy"),
actionButton("save6","Add",icon=icon("plus-square")),
actionButton("reset6","Delete",icon=icon("minus-square"))
),
mainPanel(
mainPanel(
DT::dataTableOutput("mkiresponses", width = 600), tags$hr()
))))
server<- function(input,output,session){
mkisaveData <- function(data) {
mkidata <- data.frame(
Financial_Year=data["Financial_Year"],
Quarter=data["Quarter"],
Month=as.Date(as.numeric(data[["Month"]]),"1970-01-01"),
Detailed_Book_Date=as.Date(as.numeric(data[["DB_Date"]]),"1970-01-01"),
Actual_Upload_Date=as.Date(as.numeric(data[["Actual_Date"]]),"1970-01-01")
)
if (exists("mkiresponses")) {
mkiresponses <<- rbind(mkiresponses, mkidata)
} else {
mkiresponses <<- mkidata
}
}
mkiformData <- reactive({
mkidata <- sapply(mkifields, function(x) input[[x]])
mkidata
#print(data)
})
observeEvent(input$save6, {
mkisaveData(mkiformData())
})
mkiloadData <- function() {
if (exists("mkiresponses")) {
mkiresponses
}
}
output$mkiresponses <- DT::renderDataTable({
input$save6
input$reset6
mki<-transform(mkiloadData(), Delay=as.numeric((mkiloadData()$Actual_Date)-(mkiloadData()$DB_Date)))
datatable(mki,rownames=FALSE,options = list(ordering=FALSE, searching=FALSE,paging=FALSE,pageLength=FALSE,info=FALSE))
})
}
shinyApp(ui,server)
请帮我解决错误
【问题讨论】:
-
检查是否加载了所有必需的库。还要检查拼写错误,..
-
您正在从
output$mkiresponses调用mkiloadData()并且mkiloadData没有返回任何内容,因为mkiresponses不存在(至少最初是这样)