code pour obtenir les trames de données:Fusion des trames de données avec des valeurs manquantes dans R
rat_all = structure(list(frequency = c(37L, 31L, 14L, 11L, 2L, 3L), isoforms = 8:13,
type = structure(c("rat_all", "rat_all", "rat_all", "rat_all",
"rat_all", "rat_all"), .Dim = c(6L, 1L))), .Names = c("frequency",
"isoforms", "type"), row.names = 8:13, class = "data.frame")
rat_ensembl = structure(list(frequency = c(17L, 8L, 20L), isoforms = 8:10,
type = structure(c("rat_ensembl", "rat_ensembl", "rat_ensembl"
), .Dim = c(3L, 1L))), .Names = c("frequency", "isoforms",
"type"), row.names = 8:10, class = "data.frame")
J'ai deux trames de données:
frequency isoforms type
8 17 8 rat_ensembl
9 8 9 rat_ensembl
10 20 10 rat_ensembl
et
frequency isoforms type
8 37 8 rat_all
9 31 9 rat_all
10 14 10 rat_all
11 11 11 rat_all
12 2 12 rat_all
13 3 13 rat_all
Je voudrais pour les combiner en une seule trame de données, mais aussi pour inclure les entrées manquantes isoforms
qui apparaissent dans la trame de données rat_all
mais pas la trame de données rat_ensembl
. Je voudrais donc que la sortie soit une trame de données combinées comme si je rbinded les deux trames de données, mais Augmentés:
11 0 11 rat_ensembl
12 0 12 rat_ensembl
13 0 13 rat_ensembl
Je pensais que je pouvais le faire avec fusion mais je le vent jusqu'à obtenir un énorme gâchis que je dois me détendre pour que je puisse enfin masser dans le bon format mais ce n'est pas une bonne solution si je veux faire cela pour quatre ou cinq types différents à la fois. Qu'est-ce que je rate? Merci!
Pour être clair, je suis à la recherche d'obtenir une trame de données finale qui ressemble à:
frequency isoforms type
1 17 8 rat_ensembl
2 8 9 rat_ensembl
3 20 10 rat_ensembl
4 37 8 rat_all
5 31 9 rat_all
6 14 10 rat_all
7 11 11 rat_all
8 2 12 rat_all
9 3 13 rat_all
10 0 11 rat_ensembl
11 0 12 rat_ensembl
12 0 13 rat_ensembl
Je sorte de le faire faire ce que je veux si je l'utilise:
z = merge(rat_ensembl, rat_all, by.x="isoforms", by.y="isoforms", all.y=TRUE)
isoforms frequency.x type.x frequency.y type.y
7 7 44 rat_ensembl 69 rat_all
8 8 17 rat_ensembl 37 rat_all
9 9 8 rat_ensembl 31 rat_all
10 10 20 rat_ensembl 14 rat_all
11 11 NA <NA> 11 rat_all
12 12 NA <NA> 2 rat_all
13 13 NA <NA> 3 rat_all
14 14 NA <NA> 1 rat_all
Ensuite, théoriquement, je pourrais sélectionner les colonnes isoforms
, frequency.x
, type.x
et les corriger afin qu'ils soient corrects pour chacun des rat_ensembl
et rat_all
puis rbind
des trames de données ensemble, mais il semble qu'il devrait y avoir quelque chose à gérer directement.
Qu'avez-vous essayé avec la fusion? Quelles sont les colonnes communes sur lesquelles vous souhaitez fusionner? fréquence, isoformes, type? Tout ce qui précède? Une fois que vous avez identifié les colonnes communes, il s'agit de spécifier si vous souhaitez une jointure interne, gauche, droite ou externe en spécifiant les arguments "tous". Aussi, pouvez-vous mettre à jour votre question avec un extrait de code que les gens peuvent coller dans leurs sessions R? utilisez 'dput()' et collez le contenu dans votre question. – Chase
Merci pour la suggestion dput, c'est très utile. J'ai ajouté les informations supplémentaires à la poste. – rory