替换的循环长度为零

时间:2020-06-11 16:48:01

标签: r for-loop matrix shiny

我正在编写一些代码来绘制闪亮的控制图(我不必使用qichart库),而且我正努力找到有关错误“替换长度为零”的解决方案,我已经知道此错误表示NULL或长度为0的向量。我逐步尝试在控制台中解决它,但错误没有出现,我认为这很奇怪。 我之所以使用for循环,是因为我没有“ apply&co”功能的练习。 我正在粘贴部分代码,以更好地理解。我发现构建MR时问题出在for循环中,我该如何解决?预先感谢。

                day <- input$date
                type <- input$type
                region <- input$region
                pnc <- input$range


                d2 <- 1.128
                request <- filter(region_dataset, region_dataset$data>=day & region_dataset$denominazione_regione==region)
                request <- request[,c(1,2,23,29,which(colnames(request)==(gsub(" ","_",input$type))))]
                pbar <- mean(request[,5])
                sigmapi <- as.data.frame(matrix(nrow = nrow(request),ncol = 1))
                zetai <- as.data.frame(matrix(nrow = nrow(request),ncol = 1))
                MR <- as.data.frame(matrix(nrow = nrow(request),ncol = 1))
                UCL <- as.data.frame(matrix(nrow = nrow(request),ncol = 1))
                LCL <- as.data.frame(matrix(nrow = nrow(request),ncol = 1))
                CL <- as.data.frame(matrix(nrow = nrow(request),ncol = 1))

                 for (i in 1:nrow(request)){
                  if(input$type=="p positivi"){
                    sigmapi[i,1] <- sqrt((pnc*(1-pnc))/as.numeric(request[i,4]))
                  }
                  else if(input$type=="p nuovi positivi"){
                    sigmapi[i,1] <- sqrt((pnc*(1-pnc))/as.numeric(request[i,3]))
                  }
                 }


               for (i in 1:nrow(request)){
                  zetai[i,1] <- as.numeric(request[i,5]-pnc)/sigmapi[i,1]
               }

                for(i in 2:nrow(request)){
                  MR[1,1] <- 0
                  MR[i,1] <-  as.numeric(abs(zetai[i,1]-zetai[i-1,1]))
                }
                MRbar <- (sum(MR)/as.numeric((nrow(request))-1))
                sigmaz <- MRbar/d2

                for(i in 1:nrow(request)){
                  UCL[i,1] <- pbar + 3*sigmaz*sigmapi[i,1]
                  LCL[i,1] <- pbar - 3*sigmaz*sigmapi[i,1]
                }
                CL <- rep.int(pbar,times = nrow(request))
                laney <- data.frame(request$data,"pnc"=request[5]) )} ```


0 个答案:

没有答案