Obtenez de l'index de colonne à partir de l'étiquette d'un bloc de données
Dire que nous avons les données suivantes cadre:
> df
A B C
1 1 2 3
2 4 5 6
3 7 8 9
Nous pouvons sélectionner la colonne " B " à partir de son index:
> df[,2]
[1] 2 5 8
Est-il un moyen pour obtenir l'index (2) à partir de l'étiquette de colonne ('B')?
- Voir @matthewdowle de réponse ici pour la meilleure solution: stackoverflow.com/a/9277935/636656
Vous devez vous connecter pour publier un commentaire.
vous pouvez obtenir l'index via
grep
etcolnames
:ou de l'utilisation
pour obtenir uniquement les colonnes appelé "B" sans ceux qui contiennent un B par exemple, "ABC".
grep
la façon dont vous le décrire.La suite va le faire:
grep
est aussi l'avantage, à savoir qu'il utilise des expressions régulières (de sorte que vous pouvez rechercher un motif dans votre colnames). Pour obtenir juste le colnames "B" utilisation"^B$"
comme motif grep. ^ est le caractère de remplacement pour le début et la $ pour la fin d'une chaîne.which
. Vous pouvez utiliser directementdf[names(df)=="B"]
grep("^fBodyAcc-meanFreq\\()-Z$",colnames(df))
ou aussigrep("^fBodyAcc-meanFreq\\(\\)-Z$",colnames(df))
.a <- colnames(df[,4])
mais ça ne fonctionne pas.Je voulais voir tous les indices de la colnames parce que j'avais besoin de faire compliqué colonne de réarrangement, donc j'ai imprimé le colnames comme un dataframe. Le rownames sont les indices.
cbind(names(df))
.Cela semble être un moyen efficace de faire liste à vars avec numéro de colonne:
De sortie:
Parfois, j'aime à copier les variables de position dans mon code j'ai donc utiliser cette fonction:
De sortie:
la suite de chimérique de réponse ci-dessus: j'ai aussi besoin d'obtenir tous la colonne des indices dans la df, j'ai donc utilisé:
ou de les stocker dans une liste:
Utilisation
t
fonction: