写了一个函数,为什么一直提示有缺失值,代入的表格没有缺失

问题遇到的现象和发生背景

分析TCGA数据的时候,用一个函数来把表格里的肿瘤样本整理在前面,可是运行时一直报错有缺失值,表格里没有缺失

问题相关代码,请勿粘贴截图

library(stringr)

##处理barcode
DLbarcode <- function(barcode){ #处理TCGA病人的barcode,返回一个排序后的向量

  • TumorBarcode <- c() #记录肿瘤样本的barcode
    
  • NormalBarcode <- c()#记录正常样本的barcode
    
  • for (id in barcode) {
    
  •     ids <- str_split(id,'-',simplify = T)[4]
    
  •     ids <- as.numeric(substr(ids,1,1))
    
  •     if(ids == 0){
    
  •         TumorBarcode <- c(TumorBarcode,id)
    
  •     }else if (ids == 1) {
    
  •         NormalBarcode <-c(NormalBarcode,id)
    
  •     }
    
  • }
    
  • print(paste0("正常样本数:",length(NormalBarcode)))
    
  • print(paste0("肿瘤样本数:",length(TumorBarcode)))
    
  • print("正常样本在前,肿瘤样本再后")
    
  • return(list(sortBarcode=c(NormalBarcode,TumorBarcode),
    
  •             Norm = length(NormalBarcode),
    
  •             Tumm = length(TumorBarcode)))
    
  • }

    barcodeSort <- DLbarcode(colnames(counts))

运行结果及报错内容

Error in if (ids == 0) { : missing value where TRUE/FALSE needed

我的解答思路和尝试过的方法
我想要达到的结果