到目前为止,我已使用MESS
包和auc()
函数并设置了type=spline
时间从0到1801204毫秒以毫秒为单位
df <- data
df
# A tibble: 551 x 7
Time KO_1 WT1 KO_2 WT2 KO_3 WT3
1 29800 87 80 94 99 102 99
2 30000 77 91 89 89 80 104
3 31487 264 334 261 147 330 257
4 31687 352 294 349 176 242 356
5 31887 341 333 359 260 303 353
6 32087 349 436 346 250 280 334
7 32287 328 373 383 321 287 443
8 32487 382 484 376 323 270 416
9 32687 437 495 295 317 300 458
10 32887 351 542 387 378 312 422
# ... with 541 more rows
library(MESS)
auc(df$Time, df$WT1, from=min(df$Time, na.rm = TRUE),
to = max(df$Time, na.rm = TRUE) ,type = 'spline')
我的预期结果是我得到了WT1的AUC值。但我总是收到错误消息:
integration中的错误(myfunction,lower = from,upper = to):最大 达到的细分数量
答案 0 :(得分:1)
错误消息来自integrate
中使用的函数MESS::auc
。
更确切地说,它来自参数subdivisions
(最大子间隔数),默认情况下将其设置为100。但是,在您的情况下,较高的值可能更有意义。
一种快速且简单的修复(但不是非常可持续的方法!)是,将auc函数复制并粘贴到R脚本中,使其适应您的需求(见下文),然后在使用之前先将其来源。
这是它的工作方式:
mess_auc_adapted.R
auc
(auc <- function...
)。 res <- integrate(myfunction, lower = from, upper = to)$value
成为
res <- integrate(myfunction, lower = from, upper = to, ...)$value
auc
: source("mess_auc_adapted.R")
auc(x = df$Time, y = df$WT1, from=min(df$Time, na.rm = TRUE),
to = max(df$Time, na.rm = TRUE) ,type = 'spline', subdivisions = WHATEVER_NUMBER_THAT_MAKES_SENSE)
更好的解决方案是与维护人员联系,告诉他们您的问题以及可能的解决方案。只需在此处打开一个问题:https://github.com/ekstroem/MESS/issues。这样可以直接解决问题。