2 votes

Tidyverse et R : comment compter les lignes dans une tibble d'un dataframe imbriqué

Alors, j'ai vérifié plusieurs publications et je n'ai rien trouvé. Selon ceci, mon code devrait fonctionner, mais ce n'est pas le cas.

Objectif : Je veux essentiellement imprimer le nombre de sujets - qui dans ce cas est également le nombre de lignes dans ce tibble.

Code :

 data<-read.csv("programmation_avancee_en_r/data/MIE.csv")

make_LD<-function(x){
  LongitudinalData<-x%>%
    group_by(id)%>%
    nest()
  structure(list(LongitudinalData), class = "LongitudinalData")
}

print.LongitudinalData<-function(x){
  paste("Ensemble de données longitudinales avec", x[["id"]], "sujets")

}

x<-make_LD(data)

print(x)

Voici le début de l'ensemble de données sur lequel je travaille :

> head(x)
[[1]]
# A tibble: 10 x 2
      id                  data

 1    14 
 2    20 
 3    41 
 4    44 
 5    46 
 6    54 
 7    64 
 8    74 
 9   104 
10   106 

Sortie :

[1] "Ensemble de données longitudinales avec  sujets"

J'ai essayé toutes les combinaisons possibles de la publication Stackoverflow mentionnée ci-dessus et aucune ne semble fonctionner.

2voto

eipi10 Points 3549

Voici deux options :

library(tidyverse)

# Créer un cadre de données imbriqué
dat = mtcars %>% 
  group_by(cyl) %>% 
  nest %>% as.tibble
    cyl               data
1     6  
2     4 
3     8 
dat %>% 
  mutate(nrow=map_dbl(data, nrow))

dat %>% 
  group_by(cyl) %>% 
  mutate(nrow = nrow(data.frame(data)))
    cyl               data  nrow
1     6       7
2     4     11
3     8     14

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X