dplyr和进度条之间的冲突(闪亮的孵化器)

时间:2014-08-09 00:34:45

标签: r shiny dplyr

我想在我的闪亮应用中引入一个dplyr代码,但是在加载dplyr包的阶段我已经遇到了问题。甚至在我添加任何实际的dplyr代码之前,只要我添加该行:

library(dplyr)

显示以下错误而不是其中一个无功输入:

Error: invalid assignment for reference class field ‘n’, should be from class “numeric” or a subclass (was class “environment”)

此错误仅在添加"库(dplyr)"时出现。代码,如果删除了进度条的代码,则不再出现。仅出现错误而不是输入,其属性是反应性的,并通过server.R控制。另一项意见保持不变。

可以请有人说明出了什么问题吗?谢谢!

server.R(不起作用):

library(shinyIncubator)
library(dplyr)

shinyServer(function(input, output, session) {

output$new_input<-renderUI({ 
  if (is.null(input$input_file)) {
    return(NULL)
}

progress <- Progress$new(session, min=1, max=10)
on.exit(progress$close())
progress$set(message = 'Calculating',
             detail = 'Please wait...')
for (i in 1:10) {
  progress$set(value = i)
  Sys.sleep(0.05)
}

library(gdata)
dat<-read.xls(input$input_file$datapath,check.names=F)
selectInput("a",dat[1,1],c("b"="b","c"="c"))

  })  
})

server.R(正常运行):

library(shinyIncubator)
library(dplyr)

shinyServer(function(input, output, session) {

output$new_input<-renderUI({ 
  if (is.null(input$input_file)) {
    return(NULL)
}

#    progress <- Progress$new(session, min=1, max=10)
#    on.exit(progress$close())
#    progress$set(message = 'Calculating',
#                 detail = 'Please wait...')
#    for (i in 1:10) {
#      progress$set(value = i)
#      Sys.sleep(0.05)
#    }

library(gdata)
dat<-read.xls(input$input_file$datapath,check.names=F)
selectInput("a",dat[1,1],c("b"="b","c"="c"))

  })  
})

server.R(正常运行):

library(shinyIncubator)
# library(dplyr)

shinyServer(function(input, output, session) {

output$new_input<-renderUI({ 
  if (is.null(input$input_file)) {
    return(NULL)
}

progress <- Progress$new(session, min=1, max=10)
on.exit(progress$close())
progress$set(message = 'Calculating',
             detail = 'Please wait...')
for (i in 1:10) {
  progress$set(value = i)
  Sys.sleep(0.05)
}

library(gdata)
dat<-read.xls(input$input_file$datapath,check.names=F)
selectInput("a",dat[1,1],c("b"="b","c"="c"))

  })  
})

ui.R:

shinyUI(navbarPage("a",
               tabPanel("a",
                        sidebarLayout(
                          sidebarPanel(
                            fileInput("input_file","Upload your file:"),
                            htmlOutput("new_input")
                          ),
                          mainPanel(
                            helpText(".")
                          )
                        )
               )
))

P.S。输入文件是.xls或.xlsx(内容与重现我的问题无关)。

1 个答案:

答案 0 :(得分:0)

好的,我自己找到了解决方案。似乎shinyIncubator和dplyr都有一个名为Progress的函数。所以我刚刚用shinyIncubator :: Progress替换了Progress,代码开始工作了。