Je bloque actuellement sur une manipulation, compliquée pour moi, mais peut être simple pour vous, peut etre sauriez vous m'aider
J'ai cette table,
dont voici le code reproductible
Code : Tout sélectionner
z<- structure(list(V4 = c('563','563','482','482','017','017'),
V5 = c("mere","fille","mere","fille","mere","fille"),
V6=c("050134","050139","330292","330293","330132","330295"),
V7=c('050135','','','330294','330133',''),
V8=c('','','','330295','',''),
V9=c('','','','330296','','')),
.Names = c("id","mereoufille",'V6','V7','V8','V9'),
row.names = c(NA, -6L), class = "data.frame")
J'aimerais aboutir à ça
Je veux au final passer à une table avec une ligne par relation.
Une mère peut avoir plusieurs filles, mais plusieurs mères peuvent aussi avoir une fille.
Quoi qu'il arrive c'est une relation de 1 à n ou de n à 1.
Mon idée etait de faire une boucle pour analyser ce qu'il se passe dans chaque id,
Puis regarder si on avait + d'éléments dans les colonnes de la ligne mère ou de la ligne fille,
Puis de créer des ignes, avec 1er nombre à mère vers nombre à fille, puis 2e nombre à mère vers 2e nombre à fille et si pas de 2e nombre à mère, alors remplacer par 1er nombre à mère ou bien si pas de 2e nombre à fille, remplacer par 2e nombre à mère...et finir la boucle lorsque l'ensemble des colonnes non vides des deux lignes ont été analysées, le tout en complétant une matrice vide que j'aurais initialisé au preaable...
L'idée de l'algo est celle-ci - mais je ne sais pas du tout coder ça en R.
Peut être que c'est ce problème est basique et que des fonctions d'un package pourraient répondre à ma question
Merci mille fois, d'avoir déjà tout lu jusque là
Merci 10 mille fois, si vous prenez le temps de me répondre ! :)
Luca