reshape

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Jessica Dumez
Messages : 1
Enregistré le : 31 Déc 2017, 11:38

reshape

Messagepar Jessica Dumez » 24 Avr 2019, 13:15

bonjour,
je souhaiterai connaitre l'erreur qui m'empêche d'obtenir un fichier format Wide à partir de celui la :

Classes 'tbl_df', 'tbl' and 'data.frame': 1053 obs. of 20 variables:
$ NUMERO: int 96 96 96 96 96 96 96 96 157 157 ...
$ VISIT : chr "J0" "J4" "J7" "J14" ...
$ HAMD1 : num 3 2 0 1 0 0 0 0 3 1 ...
$ HAMD2 : num 2 2 0 0 0 0 0 0 2 1 ...
$ HAMD3 : num 3 2 0 0 0 0 0 0 0 0 ...
$ HAMD4 : num 2 2 2 0 0 0 1 0 2 0 ...
$ HAMD5 : num 2 2 2 0 0 0 0 1 1 1 ...
$ HAMD6 : num 2 2 2 0 0 0 0 0 0 0 ...
$ HAMD7 : num 3 3 3 3 3 1 0 0 4 4 ...
$ HAMD8 : num 2 1 1 1 0 0 0 0 2 1 ...
$ HAMD9 : num 3 0 1 0 0 0 0 0 2 2 ...
$ HAMD10: num 4 2 0 2 2 0 0 0 4 3 ...
$ HAMD11: num 4 4 0 0 0 0 0 0 2 2 ...
$ HAMD12: num 0 0 0 0 0 0 0 0 2 2 ...
$ HAMD13: num 2 2 1 0 0 0 0 0 1 0 ...
$ HAMD14: num 0 0 0 0 0 0 0 0 2 2 ...
$ HAMD15: num 2 2 0 0 0 0 0 0 0 0 ...
$ HAMD17: num 0 0 0 0 0 0 0 0 0 0 ...
$ HAMD16: num 0 0 0 0 0 0 0 0 0 0 ...
$ HDRS : num 34 26 12 7 5 1 1 1 27 19 ...
- attr(*, "spec")=List of 2
..$ cols :List of 20
.. ..$ NUMERO : list()
.. .. ..- attr(*, "class")= chr "collector_integer" "collector"
.. ..$ VISIT : list()
.. .. ..- attr(*, "class")= chr "collector_character" "collector"
.. ..$ HAMD1 : list()
.. .. ..- attr(*, "class")= chr "collector_number" "collector"
.. ..$ HAMD2 : list()
.. .. ..- attr(*, "class")= chr "collector_number" "collector"
.. ..$ HAMD3 : list()
.. .. ..- attr(*, "class")= chr "collector_number" "collector"
.. ..$ HAMD4 : list()
.. .. ..- attr(*, "class")= chr "collector_number" "collector"
.. ..$ HAMD5 : list()
.. .. ..- attr(*, "class")= chr "collector_number" "collector"
.. ..$ HAMD6 : list()
.. .. ..- attr(*, "class")= chr "collector_number" "collector"
.. ..$ HAMD7 : list()
.. .. ..- attr(*, "class")= chr "collector_number" "collector"
.. ..$ HAMD8 : list()
.. .. ..- attr(*, "class")= chr "collector_number" "collector"
.. ..$ HAMD9 : list()
.. .. ..- attr(*, "class")= chr "collector_number" "collector"
.. ..$ HAMD10 : list()
.. .. ..- attr(*, "class")= chr "collector_number" "collector"
.. ..$ HAMD11 : list()
.. .. ..- attr(*, "class")= chr "collector_number" "collector"
.. ..$ HAMD12 : list()
.. .. ..- attr(*, "class")= chr "collector_number" "collector"
.. ..$ HAMD13 : list()
.. .. ..- attr(*, "class")= chr "collector_number" "collector"
.. ..$ HAMD14 : list()
.. .. ..- attr(*, "class")= chr "collector_number" "collector"
.. ..$ HAMD15 : list()
.. .. ..- attr(*, "class")= chr "collector_number" "collector"
.. ..$ HAMD16A: list()
.. .. ..- attr(*, "class")= chr "collector_number" "collector"
.. ..$ HAMD16B: list()
.. .. ..- attr(*, "class")= chr "collector_number" "collector"
.. ..$ HAMD17 : list()
.. .. ..- attr(*, "class")= chr "collector_number" "collector"
..$ default: list()
.. ..- attr(*, "class")= chr "collector_guess" "collector"
..- attr(*, "class")= chr "col_spec"


je souhaite ensuite faire le dataset en Wide avec cette commande :

hdrs2 <- reshape(dataset,timevar="VISIT", direction="wide",idvar="NUMERO")

au lieu de me présenter un nouveau table, voici ce que j'obtiens :

Classes 'tbl_df', 'tbl' and 'data.frame': 146 obs. of 19 variables:
$ NUMERO : int 96 157 22 21 38 37 119 48 91 89 ...
$ HAMD1.c("J0", "J4", "J7", "J14", "J21", "J28", "J42", "J56") : num NA NA NA NA NA NA NA NA NA NA ...
$ HAMD2.c("J0", "J4", "J7", "J14", "J21", "J28", "J42", "J56") : num NA NA NA NA NA NA NA NA NA NA ...
$ HAMD3.c("J0", "J4", "J7", "J14", "J21", "J28", "J42", "J56") : num NA NA NA NA NA NA NA NA NA NA ...
$ HAMD4.c("J0", "J4", "J7", "J14", "J21", "J28", "J42", "J56") : num NA NA NA NA NA NA NA NA NA NA ...
$ HAMD5.c("J0", "J4", "J7", "J14", "J21", "J28", "J42", "J56") : num NA NA NA NA NA NA NA NA NA NA ...
$ HAMD6.c("J0", "J4", "J7", "J14", "J21", "J28", "J42", "J56") : num NA NA NA NA NA NA NA NA NA NA ...
$ HAMD7.c("J0", "J4", "J7", "J14", "J21", "J28", "J42", "J56") : num NA NA NA NA NA NA NA NA NA NA ...
$ HAMD8.c("J0", "J4", "J7", "J14", "J21", "J28", "J42", "J56") : num NA NA NA NA NA NA NA NA NA NA ...
$ HAMD9.c("J0", "J4", "J7", "J14", "J21", "J28", "J42", "J56") : num NA NA NA NA NA NA NA NA NA NA ...
$ HAMD10.c("J0", "J4", "J7", "J14", "J21", "J28", "J42", "J56"): num NA NA NA NA NA NA NA NA NA NA ...
$ HAMD11.c("J0", "J4", "J7", "J14", "J21", "J28", "J42", "J56"): num NA NA NA NA NA NA NA NA NA NA ...
$ HAMD12.c("J0", "J4", "J7", "J14", "J21", "J28", "J42", "J56"): num NA NA NA NA NA NA NA NA NA NA ...
$ HAMD13.c("J0", "J4", "J7", "J14", "J21", "J28", "J42", "J56"): num NA NA NA NA NA NA NA NA NA NA ...
$ HAMD14.c("J0", "J4", "J7", "J14", "J21", "J28", "J42", "J56"): num NA NA NA NA NA NA NA NA NA NA ...
$ HAMD15.c("J0", "J4", "J7", "J14", "J21", "J28", "J42", "J56"): num NA NA NA NA NA NA NA NA NA NA ...
$ HAMD17.c("J0", "J4", "J7", "J14", "J21", "J28", "J42", "J56"): num NA NA NA NA NA NA NA NA NA NA ...
$ HAMD16.c("J0", "J4", "J7", "J14", "J21", "J28", "J42", "J56"): num NA NA NA NA NA NA NA NA NA NA ...
$ HDRS.c("J0", "J4", "J7", "J14", "J21", "J28", "J42", "J56") : num NA NA NA NA NA NA NA NA NA NA ...
- attr(*, "reshapeWide")=List of 5
..$ v.names: NULL
..$ timevar: chr "VISIT"
..$ idvar : chr "NUMERO"
..$ times :Classes 'tbl_df', 'tbl' and 'data.frame': 8 obs. of 1 variable:
.. ..$ VISIT: chr "J0" "J4" "J7" "J14" ...
..$ varying: chr [1:18, 1] "HAMD1.c(\"J0\", \"J4\", \"J7\", \"J14\", \"J21\", \"J28\", \"J42\", \"J56\")" "HAMD2.c(\"J0\", \"J4\", \"J7\", \"J14\", \"J21\", \"J28\", \"J42\", \"J56\")" "HAMD3.c(\"J0\", \"J4\", \"J7\", \"J14\", \"J21\", \"J28\", \"J42\", \"J56\")" "HAMD4.c(\"J0\", \"J4\", \"J7\", \"J14\", \"J21\", \"J28\", \"J42\", \"J56\")" ...
.. ..- attr(*, "dimnames")=List of 2
.. .. ..$ : NULL
.. .. ..$ : chr "VISIT"

merci infiniment pour l'éclairage dans cette situation

amitiés

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: reshape

Messagepar Pierre-Yves Berrard » 24 Avr 2019, 13:21

Bonjour,

La fonction reshape n'aime pas les "tbl_df" (data.frame améliorés créés par readr, par exemple).

Essayer de convertir au préalable en data.frame standard :

Code : Tout sélectionner

hdrs2 <- reshape(as.data.frame(dataset), timevar="VISIT", direction="wide", idvar="NUMERO")
PY

Serge Rapenne
Messages : 1426
Enregistré le : 20 Aoû 2007, 15:17
Contact :

Re: reshape

Messagepar Serge Rapenne » 24 Avr 2019, 14:57

Bonjour,

Tu peux aussi renoncer à reshape et utiliser spread du package tidyr qui lui fonctionne très bien avec des tbl_df (ou si tu dispose d'une version récente de tidyr de la fonction pivot_wider).

Serge


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité