Fusion de colonnes

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

Pierre Gravoin
Messages : 2
Enregistré le : 01 Avr 2020, 12:15

Fusion de colonnes

Messagepar Pierre Gravoin » 01 Avr 2020, 13:00

Bonjour,

Suite à une erreur de manipulation lors de la création d'un questionnaire, je me retrouve avec deux colonnes (ayant des données tantôt des réponses identiques, tantôt des réponses seulement dans l'une d'elle) pour une même question.
Cela donne quelque chose de la forme suivante :

X_1 X_2
1992 NA
NA 1987
NA NA
NA 2001
1998 1998

Je cherche, sans succès, une manière de créer une colonne qui réunit les informations des colonnes X_1 et X_2.
Cette colonne X_3 devrai être sous la forme suivante :

X_3
1992
1987
NA
2001
1998

Merci par avance et bonne journée.

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

Re: Fusion de colonnes

Messagepar Serge Rapenne » 01 Avr 2020, 13:16

bonjour,

une solution possible, si le jeu de donnée s'appelle dta:

Code : Tout sélectionner

dta$X_3<-apply(dta,1,function(x) ifelse(all(is.na(x)),NA,max(x,na.rm=T)))


Serge

Pierre Gravoin
Messages : 2
Enregistré le : 01 Avr 2020, 12:15

Re: Fusion de colonnes

Messagepar Pierre Gravoin » 01 Avr 2020, 13:53

Serge Rapenne a écrit :bonjour,

une solution possible, si le jeu de donnée s'appelle dta:

Code : Tout sélectionner

dta$X_3<-apply(dta,1,function(x) ifelse(all(is.na(x)),NA,max(x,na.rm=T)))


Serge


Bien compris, merci bien !

Pierre

Mickael Canouil
Messages : 1315
Enregistré le : 04 Avr 2011, 08:53
Contact :

Re: Fusion de colonnes

Messagepar Mickael Canouil » 01 Avr 2020, 14:13

Bonjour,

je me permet une petite recommandation sur l'usage de T.
Je recommande de n'utiliser T que en mode interactif et pas dans un script R/Rmd/Rnw.

Pourquoi ?
Parce-que T (et F) ne sont pas des booléens, ce ne sont que des variables ayant pour valeur TRUE et FALSE.

Code : Tout sélectionner

T
#> [1] TRUE
TRUE
#> [1] TRUE

<- 2
T
#> [1] 2

TRUE <- 2
#> Error in TRUE <- 2: invalid (do_set) left-hand side to assignment 

Cordialement,
Mickaël
mickael.canouil.fr | rlille.fr

François Bonnot
Messages : 537
Enregistré le : 10 Nov 2004, 15:19
Contact :

Re: Fusion de colonnes

Messagepar François Bonnot » 02 Avr 2020, 07:11

Pour aller dans le sens de Mickael :

Code : Tout sélectionner

 T <- FALSE
(3 > 2) == TRUE
> [1] TRUE
(3 > 2) == T
> [1] FALSE
François

jean lobry
Messages : 733
Enregistré le : 17 Jan 2008, 20:00
Contact :

Re: Fusion de colonnes

Messagepar jean lobry » 02 Avr 2020, 16:16

C'est tout le charme de R :

Code : Tout sélectionner

> library(fortunes)
> fortune("TRUE")

John Fox: I've never understood why it's legal to change the built-in global
"constants" in R, including T and F. That just seems to me to set a trap for users.
Why not treat these as reserved symbols, like TRUE, Inf, etc.?
Rolf Turner: I rather enjoy being able to set pi <- 3.
   -- John Fox and Rolf Turner
      R-help (June 2013)
Amicalement,
jean

Gabriel Terraz
Messages : 591
Enregistré le : 26 Sep 2011, 15:11

Re: Fusion de colonnes

Messagepar Gabriel Terraz » 02 Avr 2020, 20:07

Bonjour,

Pour revenir à la question initiale, on pourrait faire tout simplement ça :

Code : Tout sélectionner

ifelse(is.na(tab$V1), tab$V2, tab$V1)


Retourner vers « Questions en cours »

Qui est en ligne

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