将变量从闪亮的应用程序传递到R Markdown

时间:2015-08-09 06:57:53

标签: r shiny r-markdown

我正在使用R markdown(RMD)文件中的闪亮接口读取csv文件。

```{r, echo = FALSE}
shinyApp(

ui = fluidPage(
fluidRow(
column(3,
fileInput("file","Upload the file"),
 helpText("Default max. file size is 5MB")
),
column(4,    
tags$hr(), 
    h5(helpText("Select the read.table parameters below")), 
    checkboxInput(inputId = 'header', label = 'Header', value = TRUE), 
    checkboxInput(inputId = "stringAsFactors", "stringAsFactors", TRUE), 
    br()
),
column(5,
    radioButtons(inputId = 'sep', label = 'Separator', choices = c(Comma=',',Semicolon=';',Tab='\t', Space=''), selected = ',')
    ),

mainPanel( 
  uiOutput("tb") 
  # use below code if you want the tabset programming in the main panel. If so, then tabset will appear when the app loads for the first time. 
  #       tabsetPanel(tabPanel("Summary", verbatimTextOutput("sum")), 
  #                   tabPanel("Data", tableOutput("table"))) 
  ) 
)
),

server = function(input, output) {
data <- reactive({ 
file1 <- input$file 
if(is.null(file1)){return()}  
 read.table(file=file1$datapath,  quote = NULL,header = TRUE, sep=input$sep, fill=TRUE,stringsAsFactors = input$stringAsFactors)    
})

output$table <- renderTable({ 
if(is.null(data())){return ()} 
head(data(),5) 
 }) 

output$tb <- renderUI({ 
if(is.null(data()))    
  return()
else 
  tabPanel("Data", tableOutput("table"))
})

},

)
```

输入数据现在存储在data()中。稍后在我的文档中,我希望创建另一个闪亮的应用程序并绘制此数据的直方图。在这种情况下,我需要将变量data()传递给RMarkdown,然后在下一个闪亮的应用程序中调用该变量。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

嗯,您的问题的解决方案是创建一个图层应用程序。 Shiny不像html或php那样工作,你调用文件,每个文件都有自己的代码。 Shiny只生成一个HTML代码(运行应用程序时)。

可能你有一些选项可以在一个闪亮的应用程序中显示情节:

根据我的经验,我使用导航栏来创建导航面板,您只能看到所选菜单。此外,您可以使用包XXXs,它允许您在需要时隐藏一些元素。