【发布时间】:2017-02-28 05:07:15
【问题描述】:
我使用以下代码将 excel 文件上传到了闪亮的 R:
服务器.r
#reative function to read a table
MDPData<-reactive({
file1<-input$MDPhistorical
if(is.null(file1)){return()}
z<-as.data.frame(read.xlsx(file1$datapath,sheetName = 'Probability Matrix'))
})
#file info
output$MDPDataTable<-DT::renderDataTable({
if(is.null(MDPData())){return()}
MDPData()
DT::datatable(MDPData(),extensions = 'Responsive', options = list(pageLength=3), class = 'cell-border stripe', selection = "single")
})
ui.r的相关代码:
fluidRow(
box(
title = "Historical Data of different conditions", status = "primary", solidHeader = TRUE,
collapsible = TRUE,
DT::dataTableOutput("MDPDataTable")
)
)
然后我想将 MDPDataTable 保存为 csv 文件。 我尝试使用 write.csv :
write.xlsx(MDPDataTable,'www/probabilitymatrix.csv')
错误如下:
Warning: Error in is.data.frame: object 'MDPDataTable' not found
Stack trace (innermost first):
42: is.data.frame
41: write.xlsx
40: server [C:\Users\foad\Desktop\DSS Journal\NSS Protorype\Nss-28-2-17/server.R#902]
1: shiny::runApp
Error in is.data.frame(x) : object 'MDPDataTable' not found
【问题讨论】:
-
您不想将 HTML 表写入 CSV 文件,数据存储在
MDPData()中。使用write.xlsx(MDPData(),'www/probabilitymatrix.csv'),虽然目前还不清楚你试图在哪里运行它。它需要位于反应对象可用的地方。 -
谢谢,但是当我写 MDPData 时,它给了我另一个错误:警告:.getReactiveEnvironment()$currentContext 中的错误:没有活动的反应上下文不允许操作。 (您试图做一些只能从反应式表达式或观察者内部完成的事情。) .getReactiveEnvironment()$currentContext() 中的错误:在没有活动反应式上下文的情况下不允许操作。 (你试图做一些只能从反应式表达式或观察者内部完成的事情。)
标签: r datatable rdata rexcel shiny-reactivity