Séparer des variables qualitatives complexes

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

Antonin Pavard
Messages : 1
Enregistré le : 09 Fév 2023, 18:29

Séparer des variables qualitatives complexes

Messagepar Antonin Pavard » 10 Fév 2023, 20:54

Bonjour,

J'essaye de séparer plusieurs variables qualitatives dans un dataframe.
Jusque là rien de compliqué : separate () avec un séparateur "|"

Sauf que mon dataframe ressemble à quelque chose comme cela :

Code : Tout sélectionner

print (dftest)
User.ID    VAR1        VAR2          VAR3                                                    VAR4                                                                           (...)
ID1          OUI          2009          Autre: 5 | Soutien: 32 | Direction: 5     Form: 0.8 | Dev: 0.9 | RD: 0.4 | Invest: 1 | TI: 0.3       (...)
ID2          NON         2007          Soutien: 20 | Direction: 6                     Form: 0.8 | Dev: 0.9 | Invest: 1 | TI: 0.7                     (...)
ID3          OUI          2018          Autre: 10 |  Direction: 4                       Dev: 1.0 | Invest: 1.2 | TI: 0.5                                     (...)


Pour le moment j'applique le code suivant :

Code : Tout sélectionner

library(tidyverse)
dftest3<- reduce(seq_along(dftest),
       .init = dftest,
       ~ .x %>% separate(names(dftest)[.y],
                         sep = '\\|',
                         into = paste0(names(dftest)[.y], '_' , seq(1 + max(str_count(dftest[[.y]], '\\|'), na.rm=TRUE))),
                         fill = 'right'
       )
)


Le résultat est :

Code : Tout sélectionner

print (dftest3)
User.ID_1    VAR1-1        VAR2_1          VAR3_1          VAR3_2          VAR3_3           VAR4_1       VAR4_2    VAR4_3       VAR4_4    VAR4_5
ID1             OUI             2009             Autre: 5        Soutien: 32    Direction: 5     Form: 0.8   Dev: 0.9     RD: 0.4    Invest: 1  TI: 0.3
ID2             NON            2007             Soutien: 20   Direction: 6                          Form: 0.8   Dev: 0.9     Invest: 1  TI: 0.7
ID3             OUI             2018             Autre: 10      Direction: 4                          Dev: 1.0      Invest: 1.2 TI: 0.5


Il me reste deux problèmes :
- Les cellules contiennent un intitulé de "sous-variable"
- Chaque ligne n'a pas le même nombre de modalités sur les variables à séparer ce qui entraine des mélanges.

J'essaye en fait d'obtenir le tableau suivant :

Code : Tout sélectionner

print (dftest3)
User.ID    VAR1        VAR2       VAR3_Autre       VAR3_Soutien       VAR3_Direction     VAR4_Form       VAR4_Dev   VAR4_RD    VAR4_Invest    VAR4_TI
ID1          OUI          2009       5                       32                       5                          0.8                   0.9             0.4            1                    0.3
ID2          NON         2007                               20                        6                          0.8                   0.9                             1                    0.7
ID3          OUI          2018       10                                                4                                                  1.0                             1.2                 0.5


J'ai beaucoup plus de difficultés à voir comment procéder ici.
Est-ce que quelqu'un aurait une solution adaptée à cette situation ?

Merci beaucoup :-).

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

Re: Séparer des variables qualitatives complexes

Messagepar Pierre-Yves Berrard » 14 Fév 2023, 18:11

Bonjour
J'ai du mal à voir ce qu'il y a dans chaque colonne.
Pouvez-vous copier ici le résultat de dput(dftest) ?
PY


Retourner vers « Questions en cours »

Qui est en ligne

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

cron