Корреляционный анализ R: ggcorrplot и ggpairs для одной группы переменных -vs- другая группа (не все против всех)

Я хочу провести простой корреляционный анализ с ggcorplot а также ggpairs. Однако я хочу сравнить группу непрерывных переменных только с другой группой, а не все против всех. Позвольте мне объяснить, что я имею в виду, ниже.

Я использую mtcarsданные для этого примера. Я делаю следующее:

data(mtcars)
mtcars
summary(mtcars)
mtcars$vs <- as.character(mtcars$vs)

grDevices::pdf(file="test1.pdf", height=6, width=6)
print(
ggcorrplot::ggcorrplot(round(cor(mtcars[,1:7]), 1), p.mat = ggcorrplot::cor_pmat(mtcars[,1:7]),
                       hc.order=TRUE, type='lower', method = "circle")
)
grDevices::dev.off()

grDevices::pdf(file="test2.pdf", height=10, width=10)
print(
GGally::ggpairs(mtcars, columns=1:7, ggplot2::aes(colour=vs), legend = 1,
               lower = list(continuous = GGally::wrap("smooth", alpha = 0.5, size=2)),
               upper = list(continuous = GGally::wrap("cor", size=3.5))) +
  ggplot2::theme_light() + ggplot2::theme(legend.position = "bottom")
)
grDevices::dev.off()

В результате получаются следующие графики:

Однако я не хочу, чтобы все переменные были против всех, мне бы очень хотелось здесь сравнить переменные. mpg, cyl, disp, hp (по оси x) по сравнению с переменными drat, wt, qsec (по оси Y).

В идеале мы не обрезаем график, а делаем только соответствующие вычисления, чтобы сэкономить время. Фактически, представьте, что мои начальные данные разделены на 2 фрейма входных данных с разными непрерывными переменными (но с одинаковыми именами строк и категориальными переменными, в данном случае с использованиемvs), так что примерно так:

mydata1 <- mtcars[,c(8,1:4)]
mydata2 <- mtcars[,c(8,5:7)]

> head(mydata1)
                  vs  mpg cyl disp  hp
Mazda RX4          0 21.0   6  160 110
Mazda RX4 Wag      0 21.0   6  160 110
Datsun 710         1 22.8   4  108  93
Hornet 4 Drive     1 21.4   6  258 110
Hornet Sportabout  0 18.7   8  360 175
Valiant            1 18.1   6  225 105
> head(mydata2)
                  vs drat    wt  qsec
Mazda RX4          0 3.90 2.620 16.46
Mazda RX4 Wag      0 3.90 2.875 17.02
Datsun 710         1 3.85 2.320 18.61
Hornet 4 Drive     1 3.08 3.215 19.44
Hornet Sportabout  0 3.15 3.440 17.02
Valiant            1 2.76 3.460 20.22

Есть идеи, как подойти к этому? Не уверенаggcorrplot а также ggpairs лучше всего подходят для этого, но я бы придерживался их, если возможно, просто потому, что я более знаком, или, по крайней мере, что-то, что производит подобное ggplot2-подобный вывод. Благодарность!

0 ответов

Другие вопросы по тегам