Без воспроизводимого примера трудно быть уверенным, в чем ваша проблема здесь.
Однако моя интуиция заключается в том, что ваш вывод 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 )