Bonjour,
Je débute avec Knime. Malgré la lecture des sujets traites, je n’ai pas trouvé la réponse à mon problème. J’ai un fichier avec une variable en string salaire sous la forme 56 467,50 €. Je souhaite la convertir en number (double). Le résultat obtenu est les valeurs manquantes (?).
Pour faire cette conversion, je suis passée par les étapes suivantes :
Suppression de €
Remplacement de , (virgule) par . (point) car je suppose que le séparateur dans Knime est un point(.)
Conversion des valeurs en number grâce au noeud String To Number.
Pouvez vous me dire ce qui ne va pas dans ma démarche ?
Je pense que le problème c’est l’espace en “56 467,50 €”.
Après avoir supprimé le “€”, vous pouvez utiliser le nœud String to Number pour définir le séparateur décimal “,” et le séparateur des milliers " " en même temps.
Bienvenue au forum de KNIME!
Ce n’est pas souvent qu’on voit passer des messages en français. Heureux d’y répondre !
D’après le message d’erreur de la console, il semblerait que KNIME ne soit pas content avec les espaces avant la conversion des strings en nombre . Il faudrait donc éliminer les espaces des phrases. De mémoire (je réponds depuis mon téléphone portable ), il faudrait rajouter une fonction
replace( $phrase$, " ", “”)
dans le noeud -string manipulator- afin de supprimer les espaces des phrases, où $phrase$ représente ici ce que vous avez déjà écrit comme fonction dans ce nœud.
J’espère que ceci vous sera d’aide.
Meilleurs vœux
Ael
EDIT: @elsamuel a été plus rapide et je découvre qu’il parle aussi francais lol
Merci pour votre aide. J’ai appliqué vos conseils mais j’ai toujours la même erreur. Je me demande si j’ai bien configuré le noeud String To Number. La configuration et le message d’erreur est le suivant. Le résultat est le même que celui de mon premier post.
Bonsoir,
Je vous remercie pour votre aide. J’ai supprimé les espaces comme vous me l’avez conseillé avant de convertir ma variable. J’ai la même erreur et le même résultat avec les valeurs manquantes.
@Mireille_OBAMA l’erreur affichée dans la console montre que les espaces n’ont pas été supprimés. Est-ce que vos espaces sont vraiment des caractères blancs (ASCII n. 32 de mémoire)? C’est possible que ça soit un autre caractère ASCII avec la même apparence d’où l’erreur ?
@Mireille_OBAMA, avez-vous vérifié le workflow que j’ai posté ? Pouvez-vous partager votre fichier de données? Il est difficile de dépanner avec seulement une image.
@Mireille_OBAMA, le mieux serait que vous fassiez un copier-coller ici d’une partie de la colonne $salaire$ en mode texte, ou bien comme proposé par @elsamuel, que vous partagiez vos données sous forme de fichier, i.e. en format CSV.
Est-ce que c’est le meme fichier que vous avez utilisé? Quand j’importe ce fichier Excel, la colonne Salaire de base mensuel est “Number (double)”, Il n’y a donc pas besoin de conversion:
Si je place ces données dans le workflow que j’ai partagé, et je revise les options de séparation dans le nœud String to Number, tout fonctionne comme prévu
C’est bizarre car quand je charge le même fichier, la colonne Salaire est en String comme dans l’image ci-dessous et j’ai le pas le séparateur des milliers. Peut être faut il une configuration de plus ?
Pourrais je voir la configuration du nœud String To Number SVP ? Je pense que c’est à ce niveau que se trouve le problème. J’ai le même résultat que vous pour le nœud String Manipulation.
Excusez moi, j’ai été bloquée par Knime car mon quota du nombre d’échange avait été atteint, il me fallait attendre plusieurs heures.
J’utilise la version 4.5.0. La configuration est celle par défaut à part l’encoding que j’ai modifié en utf-8. Je ne sais pas si j’ai répondu à la question.