#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. Понятно. Идеальный. Спасибо. 🙂