ajouter une colonne à gauche d'un data frame

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Eric Wajnberg
Messages : 778
Enregistré le : 11 Aoû 2008, 15:37
Contact :

ajouter une colonne à gauche d'un data frame

Messagepar Eric Wajnberg » 21 Aoû 2019, 15:48

Bonjour,

J'ai un data frame, comme par exemple :

Code : Tout sélectionner

> x=data.frame(matrix(1:9,nrow=3,ncol=3))
> x
  X1 X2 X3
1  1  4  7
2  2  5  8
3  3  6  9

Je peux facilement ajouter une colonne à droite, si besoin est :

Code : Tout sélectionner

> x$new=10:12
> x
  X1 X2 X3 new
1  1  4  7  10
2  2  5  8  11
3  3  6  9  12

So far, so good.

Mais j'ai besoin que la colonne ajoutée soit la première, à gauche (la raison est lié à un package que j'utilise qui se sert de la première colonne).

Quelqu'un saurait faire ceci simplement, sans recopier tout le data frame dans un autre ?

D'avance merci pour toute aide sur ce point.

Eric.

Eric Wajnberg
Messages : 778
Enregistré le : 11 Aoû 2008, 15:37
Contact :

Re: ajouter une colonne à gauche d'un data frame

Messagepar Eric Wajnberg » 21 Aoû 2019, 15:50

Je me réponds à moi-même :

Question simple, réponse simple..

Code : Tout sélectionner

> cbind(10:12,x)
  10:12 X1 X2 X3
1    10  1  4  7
2    11  2  5  8
3    12  3  6  9

Désolé pour le dérangement, Eric.

matthieu faron
Messages : 586
Enregistré le : 16 Fév 2011, 11:23

Re: ajouter une colonne à gauche d'un data frame

Messagepar matthieu faron » 22 Aoû 2019, 07:41

Ou alors :

Code : Tout sélectionner

x[, c(4, 1:3)]

?
Matthieu FARON

Eric Wajnberg
Messages : 778
Enregistré le : 11 Aoû 2008, 15:37
Contact :

Re: ajouter une colonne à gauche d'un data frame

Messagepar Eric Wajnberg » 22 Aoû 2019, 07:45

matthieu faron a écrit :Ou alors :

Code : Tout sélectionner

x[, c(4, 1:3)]

?

Cette syntaxe donne un message d'erreur, il me semble.

Je reste avec

Code : Tout sélectionner

cbind(new=10:12,x)

Eric.

matthieu faron
Messages : 586
Enregistré le : 16 Fév 2011, 11:23

Re: ajouter une colonne à gauche d'un data frame

Messagepar matthieu faron » 22 Aoû 2019, 08:05

C'est bizarre, sur le miens ça marche. J'avais retenu ça si tu as besoin de réordonner des colonnes de façon plus complexe et pas simplement déplacer au début ou à la fin...

Code : Tout sélectionner

> x=data.frame(matrix(1:9,nrow=3,ncol=3))
> x$new=10:12
> x[, c(4, 1:3)]
  new X1 X2 X3
1  10  1  4  7
2  11  2  5  8
3  12  3  6  9
>
Matthieu FARON

Eric Wajnberg
Messages : 778
Enregistré le : 11 Aoû 2008, 15:37
Contact :

Re: ajouter une colonne à gauche d'un data frame

Messagepar Eric Wajnberg » 22 Aoû 2019, 08:09

matthieu faron a écrit :C'est bizarre, sur le miens ça marche. J'avais retenu ça si tu as besoin de réordonner des colonnes de façon plus complexe et pas simplement déplacer au début ou à la fin...

Ha ok, J'avais pas compris qu'il fallait créer la colonne puis ensuite la déplacer. Logique, évidement. Mais ca fait une étape supplémentaire (inutile si la colonne à ajouter doit être au début ou à la fin).

Eric.

Serge Rapenne
Messages : 1426
Enregistré le : 20 Aoû 2007, 15:17
Contact :

Re: ajouter une colonne à gauche d'un data frame

Messagepar Serge Rapenne » 22 Aoû 2019, 09:43

bonjour,

mes 2 centimes, il est aussi possible d'utiliser dplyr::select

serge

Eric Wajnberg
Messages : 778
Enregistré le : 11 Aoû 2008, 15:37
Contact :

Re: ajouter une colonne à gauche d'un data frame

Messagepar Eric Wajnberg » 22 Aoû 2019, 09:46

Serge Rapenne a écrit :mes 2 centimes, il est aussi possible d'utiliser dplyr::select

Je pense que si, mais j'essaye à chaque d'utiliser des syntaxes natives de R (base).

Eric.

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: ajouter une colonne à gauche d'un data frame

Messagepar Pierre-Yves Berrard » 22 Aoû 2019, 09:58

Serge Rapenne a écrit :mes 2 centimes, il est aussi possible d'utiliser dplyr::select

Ou tibble::add_column qui permet d'ajouter plusieurs colonnes avant ou après une colonne désignée par son nom ou son index.
PY


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité