transformation de fichier

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

Alain Blanchet
Messages : 97
Enregistré le : 21 Mai 2013, 09:49

transformation de fichier

Messagepar Alain Blanchet » 28 Juil 2018, 16:38

Bonjour,
Je n'arrive pas à passer avec tidyr et dplyr de ce fichier :

> dput(eth)
structure(list(action = structure(c(5L, 11L, 10L, 8L, 9L, 4L,
1L, 2L, 3L, 14L, 13L, 7L, 6L, 12L, 5L, 11L, 10L, 8L, 9L, 4L,
1L, 2L, 3L, 14L, 13L, 7L, 6L, 12L, 5L, 11L, 10L, 8L, 9L, 4L,
1L, 2L, 3L, 14L, 13L, 7L, 6L, 12L), .Label = c("a_apais", "a_stim",
"dc_corp", "distr", "eng_obj", "exp_vis", "fuit", "rec_sout_e",
"rec_sout_ex", "rec_sout_f", "rec_sout_h", "reev_cog", "verb_m",
"verb_p"), class = "factor"), inter = structure(c(1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("AF", "M", "P"), class = "factor"),
duree = c(45L, 45L, 45L, 45L, 45L, 45L, 45L, 45L, 45L, 45L,
45L, 45L, 45L, 45L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L,
15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L,
15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L), t1_obs = c(164L,
0L, 7L, 0L, 6L, 4L, 17L, 49L, 8L, 118L, 7L, 1L, 10L, 20L,
41L, 6L, 0L, 1L, 3L, 24L, 6L, 53L, 3L, 33L, 8L, 11L, 19L,
12L, 41L, 6L, 0L, 1L, 3L, 24L, 6L, 53L, 3L, 33L, 8L, 11L,
19L, 12L), t1_jlib = c(38L, 0L, 2L, 0L, 0L, 2L, 8L, 8L, 0L,
27L, 1L, 0L, 13L, 20L, 30L, 1L, 0L, 0L, 0L, 9L, 1L, 4L, 2L,
9L, 4L, 0L, 12L, 6L, 23L, 0L, 0L, 0L, 0L, 4L, 6L, 7L, 1L,
5L, 3L, 0L, 27L, 3L), t1_rang = c(12L, 0L, 2L, 0L, 0L, 1L,
0L, 6L, 0L, 5L, 0L, 0L, 0L, 2L, 1L, 2L, 0L, 0L, 0L, 1L, 2L,
0L, 0L, 0L, 0L, 0L, 6L, 0L, 2L, 1L, 0L, 0L, 3L, 0L, 0L, 2L,
0L, 4L, 0L, 2L, 1L, 1L), t1_apr = c(20L, 0L, 1L, 0L, 0L,
1L, 1L, 0L, 0L, 2L, 0L, 0L, 2L, 2L, 30L, 0L, 0L, 0L, 1L,
2L, 0L, 2L, 0L, 9L, 1L, 0L, 2L, 5L, 18L, 1L, 0L, 0L, 1L,
3L, 3L, 4L, 1L, 3L, 1L, 5L, 7L, 2L), t2_obs = c(94L, 0L,
1L, 24L, 16L, 31L, 22L, 37L, 50L, 86L, 10L, 2L, 5L, 58L,
86L, 10L, 2L, 1L, 1L, 16L, 12L, 8L, 0L, 54L, 4L, 2L, 42L,
16L, 86L, 10L, 2L, 1L, 1L, 16L, 12L, 8L, 0L, 54L, 4L, 2L,
42L, 16L), t2_jlib = c(35L, 0L, 4L, 0L, 1L, 2L, 6L, 5L, 0L,
15L, 2L, 0L, 7L, 18L, 41L, 0L, 0L, 1L, 1L, 2L, 3L, 0L, 0L,
16L, 1L, 0L, 5L, 9L, 27L, 0L, 1L, 0L, 2L, 3L, 10L, 1L, 0L,
15L, 1L, 0L, 17L, 13L), t2_rang = c(6L, 0L, 0L, 0L, 0L, 0L,
1L, 0L, 0L, 1L, 0L, 0L, 2L, 1L, 6L, 0L, 0L, 0L, 2L, 1L, 0L,
4L, 0L, 2L, 2L, 0L, 4L, 3L, 5L, 0L, 0L, 0L, 0L, 2L, 0L, 0L,
0L, 1L, 0L, 0L, 2L, 0L), t2_apr = c(30L, 0L, 0L, 0L, 0L,
0L, 1L, 1L, 0L, 2L, 0L, 0L, 0L, 1L, 38L, 0L, 0L, 0L, 0L,
0L, 6L, 0L, 0L, 6L, 1L, 1L, 3L, 2L, 19L, 0L, 0L, 0L, 1L,
1L, 3L, 0L, 0L, 4L, 1L, 0L, 4L, 4L), t3_obs = c(98L, 0L,
11L, 3L, 18L, 19L, 35L, 71L, 41L, 88L, 26L, 0L, 8L, 43L,
63L, 2L, 11L, 0L, 6L, 24L, 7L, 8L, 0L, 60L, 4L, 1L, 34L,
38L, 63L, 2L, 11L, 0L, 6L, 24L, 7L, 8L, 0L, 60L, 4L, 1L,
34L, 38L), t3_jlib = c(57L, 0L, 0L, 0L, 1L, 1L, 11L, 1L,
0L, 20L, 3L, 0L, 5L, 14L, 41L, 3L, 0L, 0L, 4L, 0L, 8L, 2L,
0L, 18L, 0L, 0L, 3L, 10L, 34L, 0L, 1L, 0L, 0L, 1L, 7L, 1L,
0L, 15L, 7L, 0L, 11L, 14L), t3_rang = c(8L, 0L, 0L, 0L, 3L,
0L, 1L, 1L, 0L, 2L, 0L, 0L, 0L, 2L, 4L, 2L, 2L, 2L, 0L, 4L,
2L, 0L, 0L, 5L, 1L, 0L, 1L, 4L, 2L, 0L, 0L, 1L, 1L, 3L, 0L,
1L, 0L, 2L, 0L, 0L, 2L, 1L), t3_apr = c(37L, 0L, 1L, 0L,
1L, 1L, 3L, 1L, 0L, 5L, 0L, 0L, 1L, 3L, 65L, 1L, 1L, 0L,
1L, 3L, 9L, 6L, 3L, 29L, 4L, 0L, 4L, 17L, 41L, 0L, 0L, 0L,
1L, 2L, 7L, 1L, 0L, 6L, 0L, 0L, 2L, 5L)), .Names = c("action",
"inter", "duree", "t1_obs", "t1_jlib", "t1_rang", "t1_apr", "t2_obs",
"t2_jlib", "t2_rang", "t2_apr", "t3_obs", "t3_jlib", "t3_rang",
"t3_apr"), class = "data.frame", row.names = c(NA, -42L))

À ce fichier :

> dput(eth_large)
structure(list(action = structure(c(5L, 11L, 10L, 8L, 9L, 4L,
1L, 2L, 3L, 14L, 13L, 7L, 6L, 12L), .Label = c("a_apais", "a_stim",
"dc_corp", "distr", "eng_obj", "exp_vis", "fuit", "rec_sout_e",
"rec_sout_ex", "rec_sout_f", "rec_sout_h", "reev_cog", "verb_m",
"verb_p"), class = "factor"), AF_t1_obs = c(164L, 0L, 7L, 0L,
6L, 4L, 17L, 49L, 8L, 118L, 7L, 1L, 10L, 20L), AF_t1_jlib = c(38L,
0L, 2L, 0L, 0L, 2L, 8L, 8L, 0L, 27L, 1L, 0L, 13L, 20L), AF_t1_rang = c(12L,
0L, 2L, 0L, 0L, 1L, 0L, 6L, 0L, 5L, 0L, 0L, 0L, 2L), AF_t1_apr = c(20L,
0L, 1L, 0L, 0L, 1L, 1L, 0L, 0L, 2L, 0L, 0L, 2L, 2L), AF_t2_obs = c(94L,
0L, 1L, 24L, 16L, 31L, 22L, 37L, 50L, 86L, 10L, 2L, 5L, 58L),
AF_t2_jlib = c(35L, 0L, 4L, 0L, 1L, 2L, 6L, 5L, 0L, 15L,
2L, 0L, 7L, 18L), AF_t2_rang = c(6L, 0L, 0L, 0L, 0L, 0L,
1L, 0L, 0L, 1L, 0L, 0L, 2L, 1L), AF_t2_apr = c(30L, 0L, 0L,
0L, 0L, 0L, 1L, 1L, 0L, 2L, 0L, 0L, 0L, 1L), AF_t3_obs = c(98L,
0L, 11L, 3L, 18L, 19L, 35L, 71L, 41L, 88L, 26L, 0L, 8L, 43L
), t3_jlib = c(57L, 0L, 0L, 0L, 1L, 1L, 11L, 1L, 0L, 20L,
3L, 0L, 5L, 14L), AF_t3_rang = c(8L, 0L, 0L, 0L, 3L, 0L,
1L, 1L, 0L, 2L, 0L, 0L, 0L, 2L), AF_t3_apr = c(37L, 0L, 1L,
0L, 1L, 1L, 3L, 1L, 0L, 5L, 0L, 0L, 1L, 3L), P_t1_obs = c(41L,
6L, 0L, 1L, 3L, 24L, 6L, 53L, 3L, 33L, 8L, 11L, 19L, 12L),
P_t1_jlib = c(30L, 1L, 0L, 0L, 0L, 9L, 1L, 4L, 2L, 9L, 4L,
0L, 12L, 6L), P_t1_rang = c(1L, 2L, 0L, 0L, 0L, 1L, 2L, 0L,
0L, 0L, 0L, 0L, 6L, 0L), P_t1_apr = c(30L, 0L, 0L, 0L, 1L,
2L, 0L, 2L, 0L, 9L, 1L, 0L, 2L, 5L), P_t2_obs = c(86L, 10L,
2L, 1L, 1L, 16L, 12L, 8L, 0L, 54L, 4L, 2L, 42L, 16L), P_t2_jlib = c(41L,
0L, 0L, 1L, 1L, 2L, 3L, 0L, 0L, 16L, 1L, 0L, 5L, 9L), P_t2_rang = c(6L,
0L, 0L, 0L, 2L, 1L, 0L, 4L, 0L, 2L, 2L, 0L, 4L, 3L), P_t2_apr = c(38L,
0L, 0L, 0L, 0L, 0L, 6L, 0L, 0L, 6L, 1L, 1L, 3L, 2L), P_t3_obs = c(63L,
2L, 11L, 0L, 6L, 24L, 7L, 8L, 0L, 60L, 4L, 1L, 34L, 38L),
P_t3_jlib = c(41L, 3L, 0L, 0L, 4L, 0L, 8L, 2L, 0L, 18L, 0L,
0L, 3L, 10L), P_t3_rang = c(4L, 2L, 2L, 2L, 0L, 4L, 2L, 0L,
0L, 5L, 1L, 0L, 1L, 4L), P_t3_apr = c(65L, 1L, 1L, 0L, 1L,
3L, 9L, 6L, 3L, 29L, 4L, 0L, 4L, 17L), M_t1_obs = c(41L,
6L, 0L, 1L, 3L, 24L, 6L, 53L, 3L, 33L, 8L, 11L, 19L, 12L),
M_t1_jlib = c(23L, 0L, 0L, 0L, 0L, 4L, 6L, 7L, 1L, 5L, 3L,
0L, 27L, 3L), M_t1_rang = c(2L, 1L, 0L, 0L, 3L, 0L, 0L, 2L,
0L, 4L, 0L, 2L, 1L, 1L), M_t1_apr = c(18L, 1L, 0L, 0L, 1L,
3L, 3L, 4L, 1L, 3L, 1L, 5L, 7L, 2L), M_t2_obs = c(86L, 10L,
2L, 1L, 1L, 16L, 12L, 8L, 0L, 54L, 4L, 2L, 42L, 16L), M_t2_jlib = c(27L,
0L, 1L, 0L, 2L, 3L, 10L, 1L, 0L, 15L, 1L, 0L, 17L, 13L),
M_t2_rang = c(5L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 1L, 0L,
0L, 2L, 0L), M_t2_apr = c(19L, 0L, 0L, 0L, 1L, 1L, 3L, 0L,
0L, 4L, 1L, 0L, 4L, 4L), M_t3_obs = c(63L, 2L, 11L, 0L, 6L,
24L, 7L, 8L, 0L, 60L, 4L, 1L, 34L, 38L), M_t3_jlib = c(34L,
0L, 1L, 0L, 0L, 1L, 7L, 1L, 0L, 15L, 7L, 0L, 11L, 14L), M_t3_rang = c(2L,
0L, 0L, 1L, 1L, 3L, 0L, 1L, 0L, 2L, 0L, 0L, 2L, 1L), M_t3_apr = c(41L,
0L, 0L, 0L, 1L, 2L, 7L, 1L, 0L, 6L, 0L, 0L, 2L, 5L)), .Names = c("action",
"AF_t1_obs", "AF_t1_jlib", "AF_t1_rang", "AF_t1_apr", "AF_t2_obs",
"AF_t2_jlib", "AF_t2_rang", "AF_t2_apr", "AF_t3_obs", "t3_jlib",
"AF_t3_rang", "AF_t3_apr", "P_t1_obs", "P_t1_jlib", "P_t1_rang",
"P_t1_apr", "P_t2_obs", "P_t2_jlib", "P_t2_rang", "P_t2_apr",
"P_t3_obs", "P_t3_jlib", "P_t3_rang", "P_t3_apr", "M_t1_obs",
"M_t1_jlib", "M_t1_rang", "M_t1_apr", "M_t2_obs", "M_t2_jlib",
"M_t2_rang", "M_t2_apr", "M_t3_obs", "M_t3_jlib", "M_t3_rang",
"M_t3_apr"), class = "data.frame", row.names = c(NA, -14L))

Merci pour votre aide,

très cordialement

Alain Blanchet

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

Re: transformation de fichier

Messagepar Pierre-Yves Berrard » 29 Juil 2018, 09:29

Code : Tout sélectionner

eth_large <-
  eth %>%
  select(-duree) %>%             # supprime duree
  gather(.key, .val, -(1:2)) %>% # passe temporairement au format long...
  unite(.var, inter, .key) %>%   # ...pour créer .var
  spread(.var, .val)             # passe .var en colonne
PY

Alain Blanchet
Messages : 97
Enregistré le : 21 Mai 2013, 09:49

Re: transformation de fichier

Messagepar Alain Blanchet » 29 Juil 2018, 09:51

Merci beaucoup,

pour moi ce n'est pas évident de trouver la formule.

Tout marche impeccable

Bien cordialement

AB


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité