Error in if (sd(immune[, cell]) == 0) { :
missing value where TRUE/FALSE needed
这个错误表示在进行if条件判断时,允许的类型只能是逻辑值TRUE/FALSE,但是你提供的immune[, cell]生成了一个缺失值NA。从错误信息来看,可能是immune矩阵中,某些cell对应的列全是NA,导致sd计算时产生了NA。可以检查下immune矩阵中是否存在全NA的列。如果有,需要先处理这些全NA的列,不能直接用于if判断,否则会产生这个错误。
# 在if条件中,先用is.na检查该列是否全NA,如果是,单独处理
if(is.na(sd(immune[, cell]))) {
# 处理全NA的逻辑
} else {
# 正常if判断
}