Signe "+"/"-" intégrés dans une variable séparée

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

jeaneudes trihan
Messages : 18
Enregistré le : 26 Juin 2018, 06:23

Signe "+"/"-" intégrés dans une variable séparée

Messagepar jeaneudes trihan » 23 Mar 2023, 11:04

Bonjour à tous,
Malheureusement, je me rends compte avec effarement que le recueil avait été mal conçu à l'origine de l'étude et le logiciel de gestion des données me remets un tableau csv où le caractère positif ou négatif d'une valeur (+/-) est contenue dans une variable à part !!!

Voici un code reproductible court pour expliquer :

Code : Tout sélectionner

> df2 <- data.frame(x=c("0.15","0.12","0.11","0.26","0.22","0.16","0.17", "0.18","0.15","0.15","0.98","2","0.20","3"),y=c("+","+","+","−","−","+","−", "+", "−", "+", "+", "+", "−", "+"))
> df2$x <- as.numeric(df2$x)
> df2$y <- factor(df2$y)


Quelqu'un pourrait-il me dire s'il existe un code pour le signe de la valeur (variable y) à la variable numérique initiale (variable x)?

Malgré mes recherches, je n'ai pas trouvé d'articles pour pouvoir corriger ce type d'erreurs de conception.
Merci par avance.
Jean-Eudes

Fred Santos
Messages : 233
Enregistré le : 11 Avr 2009, 10:00
Contact :

Re: Signe "+"/"-" intégrés dans une variable séparée

Messagepar Fred Santos » 23 Mar 2023, 11:38

Bonjour,

En guise de remarque préliminaire, notez que vous pouvez directement coder votre dataframe d'exemple de la manière suivante (pas besoin de faire des conversions de type après coup) :

Code : Tout sélectionner

df2 <- data.frame(
  x = c(0.15, 0.12, 0.11, 0.26, 0.22, 0.16, 0.17,  0.18, 0.15, 0.15, 0.98, 2, 0.20, 3), 
  y 
= factor(c("+", "+", "+", "-", "-", "+", "-",  "+", "-", "+", "+", "+", "-", "+"))
)
print(
df2)

#>       x y
#> 1  0.15 +
#> 2  0.12 +
#> 3  0.11 +
#> 4  0.26 -
#> 5  0.22 -
#> 6  0.16 +
#> 7  0.17 -
#> 8  0.18 +
#> 9  0.15 -
#> 10 0.15 +
#> 11 0.98 +
#> 12 2.00 +
#> 13 0.20 -
#> 14 3.00 + 


Par la suite, vous pouvez par exemple faire

Code : Tout sélectionner

df2$x <- ifelse(df2$y == "-",  -df2$x,  df2$x)
print(
df2)

#>        x y
#> 1   0.15 +
#> 2   0.12 +
#> 3   0.11 +
#> 4  -0.26 -
#> 5  -0.22 -
#> 6   0.16 +
#> 7  -0.17 -
#> 8   0.18 +
#> 9  -0.15 -
#> 10  0.15 +
#> 11  0.98 +
#> 12  2.00 +
#> 13 -0.20 -
#> 14  3.00 + 


(Au passage, attention : dans votre exemple initial, votre "−" n'est pas un simple trait d'union mais un tiret semi-cadratin, ce qui pourra vous occasionner quelques surprises si vous n'y prenez pas garde...)

jeaneudes trihan
Messages : 18
Enregistré le : 26 Juin 2018, 06:23

Re: Signe "+"/"-" intégrés dans une variable séparée

Messagepar jeaneudes trihan » 13 Avr 2023, 09:20

Merci beaucoup. Ça marche parfaitement.
C'est effectivement simple. Trop simple d'avoir un peu honte d'avoit posé la question, mais cette astuce ne m'était pas venu à l'esprit.
J'ai corrigé les "_" en "-".
Amicalement,


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité