首页 > 解决方案 > Rstudio IF 语句

问题描述

我对 Rstudio if 语句有疑问。我想创建一个 if 语句,如果我生成的矩阵包含所有 0 值,那么一个名为“Para”的矩阵也会给出三个 0 值,否则数据将用于估计 Pearson Type 3 分布的参数。这是我写的代码和我得到的错误信息。

timeScale<-3
SNOmm_1_3mon <- read.delim('SNOmm_1.txt')
X<-as.numeric(as.character(unlist(SNOmm_1_3mon[,1])))
nVal <- length(X)
nYear <- nVal/12
Q <- matrix(0,12,1)
para<- matrix(0,12,3)
totWindows <- nVal - timeScale +1
SWEI <- matrix(0,totWindows,1)
nWindow <-0

for(k in 1:12){
  endMonth <- timeScale+k-1
  if (endMonth>12){
    nYear2 <- nYear-1
  } else {
    nYear2 <- nYear
  }
  precipCum <- matrix(0,nYear,1)
  for(i in 1:nYear2){
    nWindow<-nWindow+1
    sumVal<-0
    for(j in 1:timeScale){
      sumVal <- sumVal+X[(i-1)*12+endMonth-j+1]
    }
    precipCum[i,1] <- sumVal
    
  }
  **if(precipCum <- matrix(0,nYear2,1)){
    para[k,] <- matrix(0,3,1)
  } else {
    Lmoment<-samlmu(precipCum)
    parameter<-pelpe3(Lmoment)
    para[k,]<-parameter
  }**

  
}

错误信息:

Error in pelxxx("pe3", lmom) : pelpe3: missing values in L-moment vector
In addition: Warning messages:
1: In if (precipCum <- matrix(0, nYear2, 1)) { :
  the condition has length > 1 and only the first element will be used
2: In samlmu(precipCum) : all data values equal

如果语句在 Rstudio 中如何工作?

谢谢

标签: rstatistics

解决方案


推荐阅读