Ceci est une question de suivi de la question que j'ai posée ici . Là, j'ai appris a) comment faire cela pour les colonnes (voir ci-dessous) et b) que la sélection des lignes et des colonnes semble être manipulée tout à fait différemment dans R, ce qui signifie que je ne peux pas utiliser la même approche pour les lignes.
alors supposons que J'ai un dataframe de pandas comme celui-ci: p> puis je peux facilement sélectionner des lignes et des colonnes par leurs noms comme celui-ci: p> Comment ferais-je cela dans r? Compte tenu d'un fichier de données comme celui-ci p> apparemment, si je connais les index de mes lignes / colonnes désirées, je peux simplement faire: P> df[c('r3', 'r4' 'r5'), c('c1','c2', 'c3', 'c4')]
3 Réponses :
Vous pouvez utiliser qui () code> avec
rownames code>:
Oui, je devrais être plus précis (modifiera ma question): cela devrait fonctionner pour des noms arbitraires; Ceux-ci ici seraient effectivement faciles à analyser :)
Ok je l'ai lu trop vite au début. Est-ce ce dont vous avez besoin?
Super! Oui, cela fonctionne bien. Je l'avoue pour l'instant et l'accepte plus tard en fonction de la qualité des autres réponses.
Utiliser Match code> pour rechercher la position de noms de ligne spécifiques.
df[match("r3", rownames(df)):match("r5", rownames(df)), match("c1", colnames(df)):match("c4", colnames(df))]
c1 c2 c3 c4
r3 3 4 5 6
r4 4 5 6 7
r5 5 6 7 8
Mais ensuite, j'ai besoin de spécifier les rangées et les colonnes ce que je veux réellement éviter (j'ai édité ma question à rendre cela plus clair); Imaginez cela pour 100 rangées / colonnes que vous souhaitez choisir ...
Oui, cela fonctionne aussi (upvoted)! Il vous suffit de corriger les fautes de frappe dans index.c code>.
Merci d'avoir remarqué!
Cela ne suppose-t-il pas que les noms de ligne sont dans l'ordre lexicographique? Ce n'est peut-être pas toujours le cas (noms de rangée comme identifiant ou quelque chose)
J'ai aimé la version avant de mieux; Les noms de ligne et de colonne peuvent être arbitraires, à l'aide de R et C, respectivement, n'était qu'un exemple.
Vous pouvez écrire une fonction qui vous donnera un peu le même comportement l'utiliser comme p> pour votre question p>