首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DescTools ::AUC()梯形在没有NA的数据集中返回完全不同的na.rm =T和F的结果

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

Stack Overflow用户
提问于 2021-11-11 15:40:35
回答 1查看 69关注 0票数 0

我有一个数据集(alldata),该数据集的时间变量为X小时( time ),对一些患有特定PID (allPID = vector )的患者有Y()的数值测量。在前24小时,我要计算曲线下的面积。首先,我使用了以下脚本:

代码语言:javascript
复制
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

代码语言:javascript
复制
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中确实没有NAs ),所以可以设置na.rm = F但是:这提供了与我使用na.rm = T.完全不同的结果

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

希望有人能帮忙!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-23 06:44:18

这是AUC()的NA处理中的一个bug。它已在DescTools 0.99.44中得到修正。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69931044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档