2017-07-07 8 views
0

Dans les fondements des modèles linéaires linéaires et généralisés d'Alan Agresti, l'auteur souligne qu'il existe une différence entre les données groupées et non groupées pour la modélisation de date binaire. Le format n'a pas d'importance pour l'inférence, mais il est important pour la qualité de l'ajustement. J'ai de la difficulté à obtenir des données groupées à partir de données non groupées de manière efficace dans dplyr.Données groupées dans dplyr

#ungrouped data 
x = c(rep(0,4),rep(1,4),rep(2,4)) 
y = c(c(1,0,0,0,1,1,0,0,1,1,1,1)) 
data = as_tibble(list(x=x,y=y)) 
> data 
# A tibble: 12 × 2 
     x  y 
    <dbl> <dbl> 
1  0  1 
2  0  0 
3  0  0 
4  0  0 
5  1  1 
6  1  1 
7  1  0 
8  1  0 
9  2  1 
10  2  1 
11  2  1 
12  2  1 

Maintenant, pour obtenir des données groupées sous la forme devrait ressembler à ce qui suit

x ntrials nsuccesses 
0  4   1 
1  4   2 
2  4   4 

J'ai essayé ce qui suit

data %>% 
group_by(x,y) %>% 
    tally() 
     x  y  n 
    <dbl> <dbl> <int> 
1  0  0  3 
2  0  1  1 
3  1  0  2 
4  1  1  2 
5  2  1  4 

Le problème est que y est en cours séparés en succès et des échecs .

Répondre

1

Vous pouvez tout groupe par colonne x puis résumons basé sur la colonne y:

data %>% group_by(x) %>% summarise(ntrials = n(), nsuccesses = sum(y)) 
# the number of successes is the sum of y if y is binary 

# A tibble: 3 x 3 
#  x ntrials nsuccesses 
# <dbl> <int>  <dbl> 
#1  0  4   1 
#2  1  4   2 
#3  2  4   4 
+0

Parfait! Merci! – Alex

+0

De rien. Bonne chance. – Psidom