如何获得for循环的结果以0而不是integer(0)打印

时间:2019-06-17 05:27:29

标签: r for-loop

我有一个for循环,该循环遍历数据库并将所需的元素返回到向量中,但是某些元素返回为“ integer(0)”,有一种方法可以将它们最初打印为“ 0” 'integer(0)'

我试图将整数(0)切换为NA,但是没有运气。

ageStart = c()
for(i in CancerMet) {      

  x <- dbGetQuery(conn, paste('SELECT * FROM table WHERE Person = ', i, ';'))

  info = fromJSON(x$info)

  indx <- as.data.frame(info$dx)

  inrx <- as.data.frame(info$rx)

  beforedata <- indx[indx[,1]==4591,]

   start <- head(beforedata[,2],1)

  print(start)

  **startAge <- c(startAge, capture.output(start))**
}
ageEventStarts <- as.data.frame(startAge)

现在,我得到了一个具有一些Integer(0)输出的向量,但是我想将向量中的integer(0)输出替换为0。要获得仅包含数字信息的向量。带有**的部分显示integer(0)输出。

1 个答案:

答案 0 :(得分:0)

检查length中的beforedata很有帮助

for(i in CancerMet) {      
   x <- dbGetQuery(conn, paste('SELECT * FROM table WHERE Person = ', i, ';'))
  info = fromJSON(x$info)
  indx <- as.data.frame(info$dx)
  inrx <- as.data.frame(info$rx)
  beforedata <- indx[indx[,1]==4591,]
  if (length(beforedata) > 0)
     start <- head(beforedata[,2],1)
  else
     start <- 0
  print(start)
  startAge <- c(startAge, capture.output(start))
}

ageEventStarts <- as.data.frame(startAge)