Bonjour,
J'ai un problème lorsque j'effectue la fusion de 2 matrices de données avec des noms de colonnes communs et je n'arrive pas a identifier le problème...
J'ai une matice d'origine "A" avec 12 000 lignes arrangés par NO_VOY, NO_AFFEC, NO_SORTI, NO_TRAIT,COD_ESP. Certaines lignes sont des déboublement de ces informations qui correspondent à des fréquences de longueur établie pour certaines espèces.
1-Matrice d'origine
(Matrice A)
NO_VOY NO_AFFEC NO_SORTI NO_TRAIT COD_ESP long NB_POIS ENGIN MAILLE PROF
v1436 A 1 2 412 NA NA OB 150 335
v1436 A 1 2 221 NA NA OB 150 335
v1436 A 1 2 52 NA NA OB 150 335
v1436 A 1 2 31 63 7 OB 150 335
v1436 A 1 2 31 64 10 OB 150 335
v1436 A 1 2 31 65 7 OB 150 335
v1436 A 1 2 31 66 2 OB 150 335
v1436 A 1 3 411 NA NA OB 150 150
v1436 A 1 3 31 NA NA OB 150 150
v1436 A 1 4 412 NA NA OB 150 225
2- Je veux passer à un format une ligne par NO_AFFEC+NO_SORTI+NO_TRAIT+COD_ESP et une somme du NB POIS. J'ai donc effectuer l'opération suivante:
A1 <- summaryBy (NB_POIS ~ NO_VOY + NO_AFFEC + NO_SORTI + NO_TRAIT+COD_ESP,
data = A, keep.names=TRUE, FUN = sum)
3- Ce qui me donne la matrice de sortie suivant (plus courte: 6000 lignes, dû à la sommation):
(Matrice A1)
NO_VOY NO_AFFEC NO_SORTI NO_TRAIT COD_ESP NB_POIS
v1436 A 1 2 412 NA
v1436 A 1 2 221 NA
v1436 A 1 2 52 NA
v1436 A 1 2 31 26
v1436 A 1 3 411 NA
v1436 A 1 3 31 NA
v1436 A 1 4 412 NA
4- Je voudrais ensuite complete cette matrice (A1) avec le reste des colonnes de la matrice d'origine A (ENGIN MAILLE PROF). Je Fusionne donc les 2 matrices avec une operation du style LEFT JOIN. Les 2 method donne le même résultats:
A2 <- join(A1, A, type = "left")
ou
A3 <-merge(x = A1, y = A,all.x = TRUE)
5- Ce qui me donne la matrice de sortie suivant (Matrice A2 ou A3):
NO_VOY NO_AFFEC NO_SORTI NO_TRAIT COD_ESP NB_POIS ENGIN MAILLE PROF
v1436 A 1 2 412 NA OB 150 335
v1436 A 1 2 221 NA OB 150 335
v1436 A 1 2 52 NA OB 150 335
v1436 A 1 2 31 26 NA NA NA
v1436 A 1 3 411 NA OB 150 150
v1436 A 1 3 31 NA OB 150 150
v1436 A 1 4 412 NA OB 150 225
??? Les information supplémentaires (ENGIN MAILLE PROF) ce charge correctement, sauf pour les lignes avec une somme de NB_POIS où la fusion n'inclut que des NA au lieu des informations associés à cette activité (NO_VOY, NO_AFFEC, NO_SORTI, NO_TRAIT). Et si je remplace les NA de la variable NB_POIS par des zeros (dans la matice A1), alors tout les infos supplémentaire deviennent de NA lors de la fusion.
Merci