Comprendre le "Réduire" la fonction
J'ai une question à propos de la fonction de réduction dans R. j'ai lu la documentation, mais je suis encore un peu confus. Donc, j'ai 5 vecteurs avec des gènes nom. Par exemple:
v1 <- c("geneA","geneB",""...)
v2 <- c("geneA","geneC",""...)
v3 <- c("geneD","geneE",""...)
v4 <- c("geneA","geneE",""...)
v5 <- c("geneB","geneC",""...)
Et je voudrais savoir quels gènes sont présents dans au moins deux vecteurs. Certaines personnes ont suggéré:
Reduce(intersect,list(a,b,c,d,e))
Je serais très reconnaissant si quelqu'un pourrait-il m'expliquer comment cette instruction fonctionne, parce que j'ai vu Réduire utilisée dans d'autres scénarios.
- Votre question est vraiment "Comment puis-je trouver les gènes ou les éléments sont présents dans au moins deux vecteurs?" Si oui,
Reduce()
ne va pas être utile, mais il serait facile de répondre à la question "quels gènes sont présents dans tous des vecteurs?"
Vous devez vous connecter pour publier un commentaire.
Reduce
prend une fonction binaire et une liste des éléments de données et successivement applique la fonction à la liste des éléments dans un appel récursif à la mode. Par exemple:est le même que
Cependant, je ne pense pas que la construction va vous aider à ici aussi il retournera seulement les éléments qui sont communs à tous vecteurs.
De compter le nombre de vecteurs d'un gène apparaît dans vous pouvez effectuer les opérations suivantes:
times
est un argument derep
qui détermine le nombre de fois que chaque élément est répété, afin de s'assurer que les gènes sont mappées à la bonne variable.Une belle façon de voir ce
Reduce()
est en train de faire est de le faire fonctionner avec son argumentaccumulate=TRUE
. Lorsqueaccumulate=TRUE
, il sera de retour d'un vecteur ou d'une liste dans laquelle chaque élément indique son état après le traitement de la première n éléments de la liste dansx
. Voici quelques exemples:En supposant que les valeurs d'entrée donnée à la fin de cette réponse, l'expression
donne les gènes, qui sont présentes dans tous les vecteurs, et non pas les gènes qui sont présents dans au moins deux vecteurs. Cela signifie:
Si nous voulons que les gènes qui sont au moins de deux vecteurs:
ou
Remarque: Nous avons utilisé: