Rmarkdown - .rmd文件即使缓存= FALSE仍然缓存?

时间:2017-03-01 19:47:47

标签: knitr r-markdown

我正在Rmarkdown建立一个网站。我正在使用的.rmd文件之一从用户单击指向.rmd文档的链接时创建的表中加载其内容的一些元素。 我选择这种方法的原因是我想使用单个.rmd文件来制作页面布局,但每次都要重新创建部分内容,方法是根据用户点击的链接对象加载元素。 但是,当用户在同一会话中单击多个链接时,.rmd文档中的页面始终显示单击的第一个链接中的内容。我猜这是一个缓存问题,虽然如果我设置opts_chunk$set(cache=FALSE)它不会改变。我也按照建议here 尝试了opts_chunk$set(cache.extra=file.info("~/subset_table.csv")$mtime),但它也不起作用。

NB :我正在运行来自RStudio的文件。我不确定该问题是否与在index.rmd文档的同一运行中从同一RStudio会话调用的.rmd文档有关。

以下是代码。

  • 我在闪亮的app DT表中使用行作为链接:

    ui<- fluidpage(
    
     sidebarPanel(textInput("type",label = "type", value = ""),
    
     mainPanel(DT::dataTableOutput("res")),
    
     conditionalPanel(
       condition="output.res",
       DT::dataTableOutput("tableSubset")
     )
    
    )
    
    
    server<- function(input,output, data= dt) {
    
     res.table=subset(dt,dt$Type=input$type)
     res.table=as.data.frame(res.table)
     colnames(res.table)=c("Name","Type","Value")
    
     output$res=DT::renderDataTable( {      
       res=res.table
       return(res)
     }, selection=single, server=T)
    
     output$tableSubset=DT::renderDataTable({
    
       rown=input$res_rows_selected
       if (length(rown)) {
    
         fullTable=res.table
         name=fullTable[rown,"Name"]
    
         tableSubset= subset(dt,dt$ID==name)
         write.csv(tableSubset,"~/subset_table.csv")
         datatable(tableSubset,callback=JS("onclick=window.open('/page.rmd','_blank')"))
      }
    
     })
    }
    
    shinyApp(ui = ui, server = server)
    
  • 这是Rmarkdown文档:

    output: html_document
    _ _ _ _ 
    
    ``` {r setup, include=FALSE}
    knitr::opts_chunk$set(cache=FALSE)
    ```
    
    ```{r contentLoader}
    myTable=read.csv("~/subset_table.csv", header=T)
    
    name=as.character(rnaTable$ID)
    ```
    
    
    ##  `r name `
    

0 个答案:

没有答案