if 和 else 条件在 R 中都被忽略

both if and else condition get ignored in R

首先我尝试在 R 中做一个简单的 if else 语句但是 if 条件总是被忽略然后我做了两个 if 语句但没有改变,问题是当 is.na(datamean[[d]][k,j] == TRUE 我的代码进入两个 if 语句如图所示,如果 is.na(datamean[[d]][k,j] == FALSE 它只是增加 j。

所以我尝试编写一些打印函数来确定问题,但我做不到,这些是我使用的代码和控制台中的输出

d 表示数据框,k 表示行,j 表示列

for (d in seq_along(id))
{
  for (k in seq_len(nrow(datamean[[d]])))
  {
    p <- 0
    for(j in 1:4)
    {
      print(k)
      print(j)
      print(datamean[[d]][k,j])
      print(is.na(datamean[[d]][k,j]))
      print(p)
      if( is.na(datamean[[d]][k,j] == FALSE))
      {
          p <- p+1
          print('hello')
          if(p==4) 
          {
            nbs<-nbs+1
          }
      }
      if(is.na(datamean[[d]][k,j] == TRUE))
      {
        print('hello break')
        break
      }
  }
}
}

你应该检查并尝试这个:

for (d in seq_along(id))
{
  for (k in seq_len(nrow(datamean[[d]])))
  {
    p <- 0
    for(j in 1:4)
    {
      print(k)
      print(j)
      print(datamean[[d]][k,j])
      print(is.na(datamean[[d]][k,j]))
      print(p)
      if( is.na(datamean[[d]][k,j]) == FALSE)
      {
          p <- p+1
          print('hello')
          if(p==4) 
          {
            nbs<-nbs+1
          }
      }
      if(is.na(datamean[[d]][k,j]) == TRUE)
      {
        print('hello break')
        break
      }
  }
}
}