0

我有一个数据集(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。 虽然我不完全确定这个脚本的确切问题是什么,但解决方案似乎是首先在数据框中绑定 x 和 y仅使用完整的案例

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 在这种情况下是做什么的?

希望有人可以帮忙!

4

1 回答 1

0

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

于 2021-11-23T06:44:18.357 回答