闪亮 - 来自外部代码的呼叫面板

时间:2015-06-03 20:40:27

标签: r shiny

我一直致力于一个Shiny应用程序,其中ui.R脚本变得很长并且变得难以管理。我想将代码分解为不同的部分,然后在ui内调用它们。我猜这会对嵌套和复杂的不同面板特别有用。

有办法做到这一点吗?

示例ui.R脚本:

shinyUI(pageWithSidebar(
  headerPanel('Iris k-means clustering'),
  sidebarPanel(
    selectInput('xcol', 'X Variable', names(iris)),
    selectInput('ycol', 'Y Variable', names(iris),
                selected=names(iris)[[2]]),
    numericInput('clusters', 'Cluster count', 3,
                 min = 1, max = 9)
  ),
  mainPanel(
    plotOutput('plot1')
  )
))

如果我可以将其更改为以下内容(我用伪代码编写),那将是很好的:

shinyUI(pageWithSidebar(
  headerPanel('Iris k-means clustering'),

  source("call_sidebarPanel.R"),

  mainPanel(
    plotOutput('plot1')
  )
))

call_sidebarPanel.R

  sidebarPanel(
    selectInput('xcol', 'X Variable', names(iris)),
    selectInput('ycol', 'Y Variable', names(iris),
                selected=names(iris)[[2]]),
    numericInput('clusters', 'Cluster count', 3,
                 min = 1, max = 9)
  )

1 个答案:

答案 0 :(得分:1)

是的,这是可能的,我也在所有非平凡的应用程序中这样做。诀窍是使用

source("file.R", local = TRUE)$value

This shiny article有一些相关信息。