J'ai plusieurs observations de chacun de quelques groupes et j'aimerais faire une matrice de graphiques QQ (ou un autre type de graphique), en comparant chaque groupe à tous les autres groupes.Travailler avec des données appariées à travers des groupes dans le tidyverse
Voici un exemple de ce que je parle:
library(tidyverse)
set.seed(27599)
n <- 30
d <- data_frame(person = c(rep('Alice', n),
rep('Bob', n),
rep('Charlie', n),
rep('Danielle', n)),
score = c(rnorm(n = n),
rnorm(n = n, mean = 0.1),
rnorm(n = n, sd = 2),
rnorm(n = n, mean = 0.3, sd = 1.4)))
by_hand <- data_frame(a = sort(d$score[d$person == 'Alice']),
b = sort(d$score[d$person == 'Bob']),
c = sort(d$score[d$person == 'Charlie']),
d = sort(d$score[d$person == 'Danielle']))
pairs(x = by_hand,
lower.panel = function(x, y) { points(x, y); abline(0, 1);})
Ici, j'ai manipulé les données à la main et graphiques :: paires utilisé() pour l'intrigue. Peut-on faire la même chose à l'intérieur du tidyverse?
Voici ce que j'ai essayé.
d %>%
group_by(person) %>%
mutate(score = sort(score)) %>%
glimpse()
Ceci semble prometteur.
d %>%
group_by(person) %>%
mutate(score = sort(score)) %>%
spread(key = person, value = score)
Ceci donne l'erreur 'identificateurs en double'. Peut-être que reshape2 serait préférable d'utiliser ici? Ceci crée un data.frame avec 120 lignes, et la plupart des valeurs (90 par personne) sont NA. Comment puis-je créer un large data.frame sans introduire autant de NA?