规范化路径R闪烁时出错

时间:2016-05-20 07:59:35

标签: path shiny rstudio normalize shinydashboard

这是我关于堆栈溢出的第一个问题所以我提前道歉,以防我提出一个相当含糊或困难的问题。

我一直在开发一个小型网络应用程序,它使用Rfacebook包从Facebook页面中提取粒度数据。我已经完成了这个Web应用程序的数据提取功能,现在已经开始使用shinydashboard开发闪亮的UI和服务器功能。

我已完成仪表板开发的一个阶段,并且我已成功多次测试它,但是一旦我关闭并保存RStudio然后重新启动它,每当我尝试runApp时,我都会收到此错误。

  

警告:normalizePath中出错:path [1] =“C:\ Users \ Adel \ AppData \ Local \ Temp \ RtmpIr7Hkl \ widgetbinding16a456f01dfa”:系统找不到指定的文件   堆栈跟踪(最里面的第一个):       1:shiny :: runApp   normalizePath出错(path.expand(path),winslash,mustWork):     path [1] =“C:\ Users \ Adel \ AppData \ Local \ Temp \ RtmpIr7Hkl \ widgetbinding16a456f01dfa”:系统找不到指定的文件

我尝试删除并重新安装所有相关的软件包,但这是一个失败。 我还试图在指定的路径中创建一个文件“widgetbinding16a456f01dfa”,它导致渲染shinydashboard,但它是非功能性仪表板。 此外,我尝试更改RStudio上的项目,shinydashboard工作,但每当我关闭并重新启动RStudio我收到相同的错误但模糊不同的文件名(即widgetbinding [..不同的数字])

网上有关此漏洞的信息有限,我有预感这是一个RStudio错误,而不是一个闪亮的错误。

以下是我用于ui.r的代码

library(shiny)
library(shinydashboard)
library(shinythemes)
library(DT)
library(Rfacebook)

header <- dashboardHeader()

sidebar <- dashboardSidebar(
  sidebarMenu(

    textInput("f_id", "Enter Facebook Page ID", value = "Enter ID ..."),
    dateRangeInput('dateRange',
                   label = 'Input Date',
                   start = Sys.Date() - 2, end = Sys.Date() + 2),
    actionButton("go", "Go")
  )
)


body <- dashboardBody(
  fluidRow(
    dashboardBody(
      dataTableOutput("table1",height = 5, width = "20") 
    )  
)     )

shinyUI(
  dashboardPage(header,sidebar,body))

以下是我为server.R

编写的代码
shinyServer(function(input,output){

  table <- eventReactive(input$go, {
    facebook_analyzer(input$f_id, since = format(input$dateRange[1])
                      , until = format(input$dateRange[2]))
})  

  output$table1 <-  renderDataTable(
     datatable((table()[,c("poster_name","poster_id","post_content","date_of_post")]), 
               options = list(pageLength = 5, deferRender = TRUE )))
  }) 

任何帮助都会非常感激,我一直试图调试这个错误两天。谢谢!

1 个答案:

答案 0 :(得分:0)

我试图重现该错误。我创建了一个文件夹app并将两个文件复制到其中;而且一切正常。因此,软件包的更高版本可能会解决此问题(自提出此问题以来已经过去了四年多的时间)。此外,我将确保文件server.Rui.R位于同一文件夹中,并且将工作目录设置为app文件夹(这也不必要)。

以下内容可能不适用于所陈述的问题,因为它发生在library(gfonts)setup_font(id = "roboto",output_dir = "www",variants = "regular")的上下文中,但是错误消息类似:

normalizePath(path.expand(path),winslash,mustWork)中的错误: path [1] =“ www”:系统找不到指定的文件

对于我来说,我创建了文件夹(www),这解决了问题。

通常,如果目录不存在,则命令normalizePath('myFolder')将返回以上消息。

自此,原始问题包含了一条路径。需要检查路径(和文件)是否存在。如果存在,则必须检查访问权限。如果不存在,则需要标识正在创建它的库(...widgetbinding... >> htmlwidgets),并检查是否有较新的版本解决了该问题,或者是否有其他解决方法(例如,较短的路径,不同的路径)。文件夹...)。