我想在我的闪亮应用中引入一个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(内容与重现我的问题无关)。
答案 0 :(得分:0)
好的,我自己找到了解决方案。似乎shinyIncubator和dplyr都有一个名为Progress的函数。所以我刚刚用shinyIncubator :: Progress替换了Progress,代码开始工作了。