Ошибка: неверное количество измерений на графике корреляции с тестом значимости в R - PullRequest
0 голосов
/ 10 марта 2020

Я создаю график корреляции с этим кодом:

require(ggpubr)
require(tidyverse)
require(Hmisc)

M = mydata % > %
    select(var1, var2, var3, var4)
    corrplot(cor(select_if(M, is.numeric)), method = "ellipse", type = "upper", col = c("black", "white"),
    bg = "lightblue", tl.col = "black")

Я хотел бы добавить тест значимости, как описано в https://cran.r-project.org/web/packages/corrplot/vignettes/corrplot-intro.html:

res1 < -cor.mtest(mydata, conf.level = .95)

M = mydata % > %
    select(var1, var2, var3, var4)
    corrplot(cor(select_if(M, is.numeric)), method = "ellipse", type = "upper", col = c("black", "white"),
    bg = "lightblue", tl.col = "black", p.mat = res1$p, sig.level = .05)

Но это не работает, я получаю это сообщение об ошибке:

ОШИБКА в ind [, 2]: неверное количество измерений

Что здесь происходит?

1 Ответ

1 голос
/ 10 марта 2020

Без воспроизводимого примера трудно быть уверенным, в чем ваша проблема здесь.

Однако моя интуиция заключается в том, что ваш вывод res1 провел корреляционный тест на всем фрейме данных mydata, тогда как вы пытаетесь получить график корреляции нескольких переменных (от var1 до var4).

Итак, это может объяснить сообщение об ошибке, потому что вы звоните res1$p, у которого, вероятно, больше измерений, чем часть mydata, которую вы пытаетесь построить.

Имеет ли mydata только 4 переменные? или больше?

Вместо этого попробуйте:

res1 < -cor.mtest(mydata[,c("var1", "var2", "var3", "var4")], conf.level = .95)

M = mydata % > %
    select(var1, var2, var3, var4)
    corrplot(cor(select_if(M, is.numeric)), method = "ellipse", type = "upper", col = c("black", "white"),
    bg = "lightblue", tl.col = "black", p.mat = res1$p, sig.level = .05)

Если это не работает, пожалуйста, подумайте над предоставлением воспроизводимого примера mydata (см. этот урок, чтобы узнать, как предоставить воспроизводимый пример: Как сделать великолепный воспроизводимый пример R )

...