2017-05-17 1 views
0

Y at-il un moyen rapide (partie de l'API peut-être tidyverse) pour transformer une ligne dans les noms de colonnes pour une data.frame ou tibble, un peu semblable à tibble::column_to_rownames?Ligne à colnames

Je me rends compte qu'il y a plusieurs façons de le faire, par ex. un peu gauchement:

> df <- head(iris) 
> 
> df %>% 
+  set_colnames(magrittr::extract(., 1,)) %>% 
+  magrittr::extract(-1,) 
    5.1 3.5 1.4 0.2  1 
2 4.9 3.0 1.4 0.2 setosa 
3 4.7 3.2 1.3 0.2 setosa 
4 4.6 3.1 1.5 0.2 setosa 
5 5.0 3.6 1.4 0.2 setosa 
6 5.4 3.9 1.7 0.4 setosa 
+4

tête Utiliser '= T' lors de l'importation de vos données. Utilisez 'skip' si nécessaire pour faire de l'en-tête la première ligne. – Gregor

+0

Dans mon cas, les données ne sont pas lues à partir du fichier, mais cela fonctionnerait si c'était –

Répondre

4

Eh bien, vous pouvez simplement: colnames(df) <- as.character(df[1, ])

Et si vous voulez supprimer cette première ligne: df <- df[-1,]

+0

Oui, mon exemple fait exactement cela en utilisant les commandes équivalentes de magrittr ... –