DescTools :: AUC() 梯形 returns na.rm = T 和 F 在没有 NA 的数据集中的完全不同的结果

DescTools :: AUC() trapezoid returns completely different results for na.rm = T and F in a dataset without NA

我有一个数据集 (alldata),其中 X 的时间变量以小时为单位 (Time) 和 Y 的数值测量值 ( Value) 对于许多具有特定 PID 的患者(allPID = 具有所有 PID 的向量)。 对于前 24 小时,我想计算曲线下的面积。首先,我使用了以下脚本:

AUC1 <- as.data.frame(allPID)
for(i in allPID) {
  x <- alldata[alldata$PID == i & alldata$Time <= 24, "Time"]
  y <- alldata[alldata$PID == i & alldata$Time <= 24, "Value"]
  AUC1$AUC24trap[AUC1$allPID == i] <- AUC(x, y, 
                                          method = "trapezoid",
                                          na.rm = TRUE)
}

但是,此脚本只为 46 个案例中的 17 个提供了 AUC。 虽然我不完全确定这个脚本的确切问题是什么,但解决方案似乎是首先在 dataframe 中绑定 x 和 y 并仅使用 complete cases.

AUC2 <- as.data.frame(allPID)
for(i in allPID) {
  x24 <- alldata[alldata$PID == i & alldata$Time <= 24, "Time"]
  y24 <- alldata[alldata$PID == i & alldata$Time <= 24, "Value"]
  df24 <- cbind(x24,y24)
  df24 <- as.data.frame(df24[complete.cases(df24), ])
  AUC2$AUC24[AUC2$allPID == i] <- AUC(df24$x24, df24$y24, 
                                          method = "trapezoid", na.rm = T
)
}

我想既然我用了'complete.cases'(而且df24中确实没有NA),我可以设置na.rm = F但是:这提供了与我使用 na.rm = T.

完全不同的结果

留下问题:为什么这些结果如此不同? na.rm 在这种情况下的作用是什么?

希望有人能帮忙!

这是 AUC() 的 NA 处理中的错误。它已在 DescTools 0.99.44 中修复。