Ваша проблема в том, что ваш список содержит p-значения - это вектор. То, что вы хотели, было числовой вектор. Список - это просто общий вектор:
> l <- list(A = runif(1), B = runif(1))
> l
$A
[1] 0.7053136
$B
[1] 0.7053284
> as.vector(l)
$A
[1] 0.7053136
$B
[1] 0.7053284
> is.vector(l)
[1] TRUE
Один из вариантов - unlist()
список, чтобы получить числовой вектор:
> unlist(l)
A B
0.7053136 0.7053284
Преимущество этого в том, что оно сохраняет имена. Альтернативой является просто старый as.numeric()
, который теряет имена, но в остальном совпадает с unlist()
:
> as.numeric(l)
[1] 0.7053136 0.7053284
Для больших векторов вы, возможно, не захотите использовать имена в unlist()
, поэтому альтернатива, которая ускорит эту версию:
> unlist(l, use.names = FALSE)
[1] 0.7053136 0.7053284