Je souhaite remplacer les valeurs numériques par des chaînes. la plage numérique est comprise entre -1 et 1 mon dput d'un df est ci-dessous.L'extraction avec des inégalités négatives renvoie des valeurs incorrectes
structure(list(m = c(-0.226, 0.11, 0.143, -0.095, -0.007, -0.232,
-0.258, -0.438, -0.199, -0.419, -0.41, -0.271, -0.176, -0.33,
-0.335, -0.59, -0.724, -0.161, -0.237, -0.223, -0.041, -0.627,
-0.37, 0.055, -0.215, -0.287, -0.378, 0.006, -0.381, -0.598,
-0.179, -0.259, 0.147, -0.08, 0.172, 0.035, -0.458, -0.254, -0.373,
-0.319)), .Names = "m", row.names = c(NA, -40L), class = "data.frame")
Lorsque je lance le code ci-dessous, il ne donne pas le résultat escompté.
m[m >= 0.3] <- "a"
m[(m < 0.3 & m >= 0.2)] <- "b"
m[(m < 0.2 & m >= 0.1)] <- "c"
m[(m < 0.1 & m >= 0.05)] <- "d"
m[(m < 0.05 & m >= 0)] <- "e"
m[(m < 0 & m >= -0.05)] <- "f"
m[(m < -0.05 & m >= -0.1)] <- "g"
m[(m < -0.1 & m >= -0.2)] <- "h"
m[(m < -0.2 & m >= -0.3)] <- "i"
m[m < -0.3] <- "j"
J'ai aussi essayé avec l'ajout d'un « » à la fin comme ci-dessous:
m[m < -0.3,] <- "j"
Je crois que le code est assez explicite: je voudrais changer les valeurs dans une plage par une chaîne de caractères. L'inégalité avec des valeurs négatives ne semble pas fonctionner ...
Merci.
un coup d'oeil à 'cut'?. –
@DavidArenburg coupe fait l'affaire mais fonctionne pour les vecteurs numériques, j'ai dataframe ... merci – Chrisftw
Une trame de données est juste un vecteur (liste) de vecteurs. En R, pratiquement tout est un vecteur. Donc 'df $ m' est aussi un vecteur. –