Как графически измерить связь между переменными?

#r #ggplot2

#r #ggplot2

Вопрос:

прежде всего, мои данные:

 dput(A22[1:10,])
structure(list(var1 = c("2.655086631421", "3.7212389963679",
"5.72853363351896", "9.08207789994776", "2.01681931037456", "8.98389684967697",
"9.44675268605351", "6.60797792486846", "6.29114043898881", "0.617862704675645"
), var2 = c("1552.74486613787", "-2569.05222968964", "444.924755180376",
"-30903.126560766", "5712.55164894465", "-15996.3316364127",
"-39466.7802848889", "-6396.48804278828", "662.572855848352",
"-542.783293142592"), var3 = c("12.0761815621956", "15.531955650981",
"24.3703946694194", "38.692940909924", "1.13425531130685", "37.6187150619221",
"48.2338786451232", "27.554822845155", "22.9179948054061", "7.56647601307255"
), var4 = c("0.136221893102778", "0.407167603423836", "-0.0696548130129049",
"-0.247664341619331", "0.69555080661964", "1.1462283572158",
"-2.40309621489187", "0.572739555245841", "0.374724406778655",
"-0.425267721556076"), gruppe = c("0", "0", "0", "1", "1", "1",
"1", "1", "0", "0")), row.names = c(NA, 10L), class = "data.frame")
 

Я понимаю данные следующим образом: у меня есть две разные группы (группа 0 и группа 1). В каждой группе измеряются var1, var2, var3, var4.

Мои задачи:

 (a)Visualize the distribution of var1. Do you recognize group-specific differences?
(b)Graphically analyze the relationship between the following variables:
   (i)var1 and var3 
   (ii)var1 and var2 
   (iii)var1 and var4
(c)Calculate an introductory measure to measure the relationship.
 

Моя главная проблема:
Я не знаю, как извлечь (например, в (a)) var1 из моих данных и как каким-то образом обусловить его в группе и визуализировать его.

Я рад помощи.

С наилучшими пожеланиями и приятными выходными.

Ответ №1:

Поскольку этот вопрос помечен ggplot2 , я отвечу, имея в виду ggplot2 . Предоставленные вами данные представлены в так называемом «широком формате», в отличие от «длинного формата». ggplot2 лучше работает с данными «длинного формата», поэтому первым шагом является преобразование данных с tidyr::pivot_longer() помощью . Затем вы можете построить графики плотности ядра с фасетками, чтобы показать распределение различных переменных в разных фасетах и цвета по группам.

 df <- tidyr::pivot_longer(A22, cols = c("var1", "var2", "var3", "var4"))
# or: df <- tidyr::pivot_longer(A22, !gruppe)

library(ggplot2)

ggplot(df, aes(as.numeric(value), fill = as.factor(gruppe)))  
  geom_density(alpha  = 0.3)  
  facet_wrap(~ name, scales = "free")
 

Комментарии:

1. Здравствуйте, большое спасибо за вашу быструю помощь! Не могли бы вы объяснить, что вы сделали на своем первом шаге? Я никогда не слышал о «широком формате» или «длинном формате». И что именно делает команда «facet_wrap(~ name, scales = «free»)»?. Еще раз большое спасибо.!

2. pivot_longer() Функция преобразуется из широких данных в длинные данные. Длинные данные имеют одно наблюдение на строку, тогда как широкие данные имеют некоторую структуру столбцов для указания параллельных наблюдений, но имеют несколько наблюдений на строку. facet_wrap() Команда помещает каждую var* в свою собственную панель со свободными осями x и y.

3. Понятно. Идеальный. Спасибо. 🙂