Donc, si j'ai un cadre de données qui ressemble à: Comment puis-je obtenir r pour me donner le nom (s) de la ligne / colonnes contenant un numéro particulier? < / p> IE Si je donne la valeur 3, il redonne p>
3 Réponses :
supposer aucun duplicates, vous pouvez utiliser si vous devez avoir la réelle Noms de ligne et de colonne de l'emplacement, puis indexez-les de manière appropriée: P> quel code> combiné avec l'argument
arr.ind> argument:
paste(rownames(df)[index[1]], colnames(df)[index[2]], sep=", ")
# [1] "1, X3"
Votre code fonctionne simplement bien s'il ya des dupes. Il va lister toutes les paires de coordonnées commandées. Maintenant, devrions-nous avertir Pepsimax à propos de la différence entre == code> et
tout.equal code>?
Pendant que vous avez raison de penser que je ne connais pas la différence entre eux, ce code fonctionne parfait, donc je suis heureux pour l'instant. Merci les gars!
Si vous ne connaissez pas la différence, vous serez condamné pour répéter les nombreuses échecs des personnes passées qui pensaient i> ils comprenaient des calculs informatiques. Je vous maudis par la présente à des échecs inattendus et imprévisibles jusqu'à ce que vous éliminiez la malédiction en faisant l'étude nécessaire de ces deux fonctions et lisez la FAQ.
J'essaie d'apprendre à m'en apprendre comme mon premier langage de programmation. Je ne m'attends pas à l'apprendre facilement ...
Ensuite, vous avez certainement besoin de lire la FAQ et "The R-Inferno". Je souhaite seulement que je puisse vous avertir en prose créative que Dwin l'a fait. zoonek2.free.fr/unix/48_r/all.html a un très Bon manuel détaillé.
Ecrire une fonction simple pourrait vous aider à sortir:
DF[1,1] <-3.0 Which.names(DF, value=3) [1] "rowname1, B" "rowname2, B" DF[1,2] <- 3 Which.names(DF, value=3) [1] "rowname1, B" "rowname2, B" "rowname1, B"
Je viens de modifier ma réponse afin que vous puissiez vous permettre de travailler avec des valeurs dupliquées.
Il y a quelques problèmes dans le code de la réponse de Jilber, il faut changer un peu, devrait être comme ceci (version 3.1.2):
Pourquoi ne rentrerait-il pas "rowname1, c" à la place? Cette valeur est aussi 3 ...
C'est maintenant 3.2 ... Je ne voulais pas avoir des doublons, je viens de le précipiter
Êtes-vous sûr à 100% que c'est impossible i> pour vos données réelles de disposer de duplicats?
Avec des doublons, vous pouvez utiliser
MAXT code> à partir de
Reshape2 code> et renvoyer toutes les lignes. Si vos données sont nommées
df code>:
bibliothèque (reshape2); df.m <- fondre (DF); df [df $ valeur == 3,] code>.