闪亮:app.R中定义的功能对以后获取的其他文件不可见

时间:2016-08-01 14:59:16

标签: r shiny

所以,我刚刚遇到一个奇怪的问题(我认为)app.R中定义的函数在我稍后提供的另一个R脚本中不可见。然而,如果我使用与常规R脚本相同的功能,它可以正常工作。

这是可重现的代码:

app.R:

library(shiny)

f1 <- function(x) {
  x
}

source('plot/plot.R')

ui <- fluidPage(
    h1('MPG Plot'),
    plotOutput('plot1')
)

server <- function(input, output) {
  output$plot1 <- renderPlot({
    getPlot()
  })
}

shinyApp(ui = ui, server = server)

情节/ plot.R:

getPlot <- function() {
  cat(f1(10))
  plot(mtcars$wt, mtcars$mpg)
}

以下是关于未找到函数f1的错误:

runApp()

Listening on http://127.0.0.1:5254
Warning: Error in cat: could not find function "f1"
Stack trace (innermost first):
    78: cat
    77: getPlot [plot/plot.R#3]
    76: renderPlot [c:\Users\tumulurig3\Documents\rProjects\cancerGeneExp\junk/app.R#16]
    68: output$plot1
     1: runApp

然而,当我将该函数放在另一个脚本中时,让我们调用f.R,并在app.R中找到它,一切正常。

为什么在全局环境中定义的函数对后面的脚本不可见?

版本信息:

packageVersion('shiny')
[1] ‘0.13.2’
version
               _                                          
platform       x86_64-w64-mingw32                         
arch           x86_64                                     
os             mingw32                                    
system         x86_64, mingw32                            
status         Revised                                    
major          3                                          
minor          2.4                                        
year           2016                                       
month          03                                         
day            16                                         
svn rev        70336                                      
language       R                                          
version.string R version 3.2.4 Revised (2016-03-16 r70336)
nickname       Very Secure Dishes            

在我的Windows安装上以及RHEL安装上遇到完全相同的问题。

0 个答案:

没有答案