Conseil JSL: recherche de valeurs uniques dans une listeL’un des avantages de participer à la Sommet de découverte JMP en tant que développeur entend des questions et des suggestions de personnes avec tant d'applications différentes de JMP . Une question concernant le langage de script JMP (JSL) a été posée à trois reprises. La question est "Comment puis-je supprimer les éléments en double d'une liste?"
C'est, étant donné la liste {"comme", "n'aime pas", "comme", "neutre", "n'aime pas", "comme"} le résultat devrait être {"n'aime pas", "aime", "neutre"} (ordre pas important).
Il y a probablement beaucoup de façons raisonnables de le faire dans JSL (d'autres idées sont les bienvenues), mais le plus simple que je puisse penser est d'utiliser un tableau associatif . Un tableau associatif est un ensemble de paires clé-valeur dans lesquelles les clés sont uniques. Si vous ajoutez plus d'une paire clé-valeur avec la même clé, une seule d'entre elles est conservée (la dernière). Si vous ne vous souciez pas des valeurs, le tableau associatif est en réalité un ensemble de clés uniques.
En JSL, vous pouvez créer un tableau associatif de plusieurs manières, mais le seul intérêt ici est de le créer à partir d'une liste. Le tableau associatif résultant traitera les valeurs de la liste en tant que clés et ne stockera que les clés uniques. Ensuite, nous pouvons demander au tableau associatif une liste de ses clés.
réponses = { "comme" , "Ne pas aimer" , "comme" , "neutre" , "Ne pas aimer" , "comme" } ;
réponses ensemble = Tableau associatif ( réponses ) ;
unique réponses = ensemble de réponses << Obtenir des clés ;
Résultat: {"dislike", "like", "neutre"}
Si vous n'avez pas encore découvert de tableaux associatifs dans JMP, explorez les documents et les exemples de l'index de script JSL.
Maintenant, à vous de jouer: de quelle autre manière pouvez-vous obtenir des valeurs uniques d’une liste? Je peux penser à celui qui utilise la fonction Summarize () ...
James Cultra a écrit: Cette méthode fonctionne mieux pour les matrices ... James Cultra a écrit:
Cette méthode fonctionne mieux pour les matrices car la fonction tableau associatif semble arrondir les valeurs de la matrice (ainsi, la liste unique ne correspond pas aux valeurs réelles dans la matrice)
Xan Gregg a écrit: Si vous parcourez une zone associative ... Xan Gregg a écrit:
Si vous parcourez un tableau associatif (avec les messages First et Next), les entrées sont renvoyées dans l'ordre des clés triées. Si les valeurs sont uniques, vous pouvez les utiliser comme clés, mais sinon, je pense que cela nécessitera un tri explicite. Vous pourriez essayer le Forum communautaire JMP pour des idées sur ce dernier.
Eric Wittry a écrit: Si j'ai une paire clé => valeur, et je veux ... Eric Wittry a écrit:
Si j'ai une paire clé => valeur et que je souhaite trier les valeurs et renvoyer les clés dans cet ordre (* en fonction de la valeur triée), comment procéderais-je dans JMP? Merci Eric
Leighton Spadone a écrit: // Les fonctions de la matrice JSL ... Leighton Spadone a écrit:
// fonctions de matrice JSL utilisées pour réduire une liste à des valeurs uniques;
// Une liste avec des valeurs en double;
réponses = {"comme", "n'aime pas", "comme", "neutre", "n'aime pas", "comme"};
// Colapse une matrice de conception en une seule ligne avec 1 pour la 1ère occurrence et 0 pour les doublons;
DesignMatrix = VMax (design (réponses, réponses));
// Résultat: DesignMatrix = [1 1 0 1 0 0];
// Sous-ensemble Liste de réponses à des valeurs uniques;
UniqueAnswers = answers [Loc (DesignMatrix)];
// Résultat: UniqueAnsers = {"n'aime pas", "j'aime", "neutre"};
Pmroz a écrit: Trouver des valeurs uniques dans une liste est apparu au t ... Pmroz a écrit:
Trouver des valeurs uniques dans une liste est venu
dans le forum de discussion JMP il y a quelque temps. Â Voici la fonction
que j’utilise, basé sur la technique de Xan:
/ *
Nom de la fonction: get_unique_values
Description: Trouver les valeurs uniques dans une liste.
Utilise un tableau associatif
Arguments:
in_list  Liste pour obtenir des valeurs uniques pour
* /
Get_unique_values = Fonction ( { dans la liste } , { Local par défaut } ,
Tmp = [ => 0 ] ;
    Insérer dans ( tmp, in_list ) ;
    tmp << get key;
) ;
Guillaume a écrit: Une autre façon est d'utiliser la déclaration de boucle et ... Guillaume a écrit:
Une autre méthode consiste à utiliser l'instruction de boucle et la fonction Loc () pour rechercher des valeurs uniques.
réponses = {"comme", "n'aime pas", "comme", "neutre", "n'aime pas", "comme"};
unique_answers = List ();
Pour (i = 1, i <= Nitems (réponses), i ++,
Si (Nrows (Loc (unique_answers, répond [i]))) == 0,
InsertInto (unique_answers, répond [i])
)
)
Michael Crotty a écrit: Une autre fonction JSL intégrée qui ... Michael Crotty a écrit:
Une autre fonction JSL intégrée qui peut aider à résoudre ce problème est la fonction Design ():
réponses = {"comme", "n'aime pas", "comme", "neutre", "n'aime pas", "comme"};
conception (réponses, <