r - 代码运行良好,但显示错误闪亮
问题描述
我运行我闪亮的应用程序,我得到了情节。我交叉检查了情节,发现它是正确的。但我最初收到警告,如下所示。
'data' 必须是向量类型,为 'NULL'
在向代码添加更多行之前,我想了解问题出在哪里。
library(shiny)
library(zoo)
diff_durations <- function(vect_table){
L = c(1,2,3,6,12,24,48)
n = length(L)
xx <- vect_table
m = length(xx)
D = matrix(0,m,n)
E = matrix(0,m,n)
for (i in 1:n) {
D[,i] = rollsum(xx,L[i],0,align = "right")
E[,i] = D[,i]/L[i]
}
return(E)
}
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
fileInput("file", "Choose observation precipitation CSV File", accept = ".csv"),
checkboxInput("header", "Header", TRUE),
numericInput("HR1","Mention the column number of Hour 1",value = 1),
numericInput("HR24","Mention the column number of Hour 24",value = 1 )
),
mainPanel(
plotOutput('pl')
)
)
)
server <- function(input, output,session) {
inputdata <- reactive({
infile = input$file
if(is.null(infile))
return(NULL)
read.csv(infile$datapath,header=input$header)
})
vectdata <- reactive({
dat <- inputdata()
A <- t(as.matrix(dat[,input$HR1:input$HR24]))
B = as.numeric(as.vector(A))
replace(B,is.na(B),0)
})
output$pl <- renderPlot({
df <- diff_durations(vectdata())
plot(df)
})
}
shinyApp(ui, server)
控制台显示这些行。
192: array
191: as.matrix.default
188: <reactive:vectdata> [~/.active-rstudio-document#43]
186: .func
183: contextFunc
182: env$runWith
175: ctx$run
174: self$.updateValue
172: vectdata
170: renderPlot [~/.active-rstudio-document#49]
168: func
128: drawPlot
114: <reactive:plotObj>
98: drawReactive
85: renderFunc
84: output$pl
4: runApp
3: print.shiny.appobj
1: source
任何帮助将不胜感激,谢谢。
解决方案
利用req
等待文件上传。
library(shiny)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
fileInput("file", "Choose observation precipitation CSV File", accept = ".csv"),
checkboxInput("header", "Header", TRUE),
numericInput("HR1","Mention the column number of Hour 1",value = 1),
numericInput("HR24","Mention the column number of Hour 24",value = 1 )
),
mainPanel(
plotOutput('pl')
)
)
)
server <- function(input, output,session) {
inputdata <- reactive({
infile = input$file
if(is.null(infile))
return(NULL)
read.csv(infile$datapath,header=input$header)
})
vectdata <- reactive({
req(inputdata())
dat <- inputdata()
A <- t(as.matrix(dat[,input$HR1:input$HR24]))
B = as.numeric(as.vector(A))
replace(B,is.na(B),0)
})
output$pl <- renderPlot({
req(vectdata())
df <- diff_durations(vectdata())
plot(df)
})
}
shinyApp(ui, server)
推荐阅读
- xamarin.forms - 如何在 xamarin Forms 中监控蓝牙设备连接状态?
- javascript - 如何转到下一张幻灯片 jQuery
- android - 向上滚动时显示工具栏 - 具有多个捕捉点的 CoordinatorLayout
- php - 默认显示一个 symfony 表单块,但我需要零个块
- java - 如果可以通过反射绕过访问修饰符,它们的目的是什么?
- azure-devops-rest-api - 使用 powershell 脚本获取测试套件的默认测试人员
- r - 在 R 中将数字 1000 格式化为 1k,将 1000000 格式化为 1m 等
- performance - MoviePy:减慢视频的渲染速度
- angular8 - 电子邮件和密码的正则表达式验证不起作用
- tensorflow - 在 {TF 2.0.0-beta1 上使用 tflite_convert 时出现“未知(自定义)损失函数”;Keras} 模型