2 votes

R: tibble déplacer les colonnes en lignes et nommer les colonnes

J'ai un tibble propre, comme indiqué ci-dessous :

df <- structure(list(created_week = c(31, 32, 33, 34), Rt_count = c(7, 
6, 5, 0), Cus_count = c(2, 1, 2, 1)), class = c("tbl_df", "tbl", 
"data.frame"), .Names = c("created_week", "Rt_count", "Cus_count"
), row.names = c(NA, -4L))

Je cherche à faire la même chose que t() de base, avec un tibble comme résultat et les lignes de df$created_week avec leur nom, les colonnes sont Rt_count et Cus_count et doivent être nommées. Je ne trouve pas de manière simple et facile de le faire.

Merci pour votre aide.

3voto

Z.Lin Points 9668

Republier mon commentaire en tant que réponse...

Pour créer des noms de lignes à partir de df$created_week tout en laissant Rt_count & Cus_count en tant que colonnes, vous pouvez utiliser la fonction column_to_rownames du package tibble.

Vous recevrez un avertissement indiquant que l'attribution de noms de lignes sur un tibble est obsolète, mais ce n'est pas grave car nous le convertirons de nouveau en data.frame :

library(dplyr); library(tibble)

df %>% 
  column_to_rownames("created_week") %>% 
  as.data.frame()

   Rt_count Cus_count
31        7         2
32        6         1
33        5         2
34        0         1

Éditer pour une alternative qui ne dépend pas de la fonction de tibble :

df <- as.data.frame(df)
rownames(df) <- df$created_week
df$created_week <- NULL

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X