Re : Insertion de valeurs supplémentaires dans des clés existantes dans des tableaux associatifs (dictionnaires de données en JSL)Traiter la valeur ex["b"] comme n'importe quelle autre liste.
Names Default To Here( 1 );
ex = Associative Array();
ex["a"] = {"10"};
ex["b"] = {"20"};
ex["c"] = {"30"};
// Add new value to "b"
Insert Into( ex["b"], {"21"} );
Show( ex );Re : Insertion de valeurs supplémentaires dans des clés existantes dans des tableaux associatifs (dictionnaires de données en JSL)La réponse de Mark est la meilleure. Tu peux aussi le faire comme ça
ex["c"][nitems(ex["c"])+1]="99";
qui est plus laid, plus lent et moins concis. Mais cela pourrait suggérer d'autres possibilités. Les listes ont une propriété d'indice intéressante pour un au-delà de la fin qui permet d'étendre la liste d'un élément.
Re : Insertion de valeurs supplémentaires dans des clés existantes dans des tableaux associatifs (dictionnaires de données en JSL)J'utilise en fait quelque chose de plus comme ça, donc je suppose qu'il me manque une évaluation de la variable:
Names Default To Here( 1 );
ex = Associative Array();
a_s = "a";
b_s = "b";
c_s = "c";
a_n = "10";
b_n = "20";
c_n = "30";
ex[a_s] = {a_n};
ex[b_s] = {b_n};
ex[c_s] = {c_n};
// Add new value to "b"
b_n = "21";
Insert Into( ex[b_s], {b_n} );
Show( ex );
// ex = ["a" => {a_n}, "b" => {b_n, b_n}, "c" => {c_n}];
Re : Insertion de valeurs supplémentaires dans des clés existantes dans des tableaux associatifs (dictionnaires de données en JSL)La définition de la liste dit qu'ils ne sont pas évalués.
Liste : crée une liste d'éléments sans les évaluer.
Enveloppez-les simplement dans evallist()
Names Default To Here( 1 );
ex = Associative Array();
a_s = "a";
b_s = "b";
c_s = "c";
a_n = "10";
b_n = "20";
c_n = "30";
ex[a_s] = Evallist({a_n});
ex[b_s] = Evallist({b_n});
ex[c_s] = Evallist({c_n});
// Add new value to "b"
b_n = "21";
Insert Into( ex[b_s], Evallist({b_n}) );<BR />// or you could this it seems easier.
// Insert Into( ex[b_s], b_n) ;<BR />
Show( ex );Re : Insertion de valeurs supplémentaires dans des clés existantes dans des tableaux associatifs (dictionnaires de données en JSL)Cela fonctionne, mais si une clé donnée n'existe pas, je ne peux pas y insérer de nouveaux éléments.
Que la clé soit déjà là ou non, existe-t-il un moyen simple d'introduire une nouvelle clé -> valeur ou d'insérer une nouvelle valeur ?
Re : Insertion de valeurs supplémentaires dans des clés existantes dans des tableaux associatifs (dictionnaires de données en JSL)Je pense que vous devrez utiliser une instruction if pour vérifier si la clé existe et la créer si ce n'est pas le cas. Je le fais généralement en le créant avec une liste vide, puis tombe dans le code qui ajoute le nouvel élément à la liste existante.Re : Insertion de valeurs supplémentaires dans des clés existantes dans des tableaux associatifs (dictionnaires de données en JSL)Exemple complet, y compris le évident façon qui fait pas fonctionner correctement.
// I wish the default value for AA's worked correctly with a list for the
// default, but it does not:
aa = [=> {}];
Insert Into( aa["fred"], 1 );
Insert Into( aa["ralph"], 2 );
Show( aa ); // aa = [=> {1, 2}]; ?!?!?!?!
// so you must do an explicit test and create the key/list like this:
aa = [=> ];
For( i = 1, i <= 3, i += 1,
For Each( {key}, {"fred", "ralph"},
If( !(aa << Contains( key )), // key does not exist?
aa[key] = {};// add the key with an empty list
);
Insert Into( aa[key], i );// insert into list
)
);
Show( aa ); // aa = ["fred" => {1, 2, 3}, "ralph" => {1, 2, 3}];
Insertion de valeurs supplémentaires dans des clés existantes dans des tableaux associatifs (dictionnaires de données en JSL)Je ne trouve pas la méthode appropriée pour ajouter de nouvelles valeurs aux clés existantes dans les tableaux associatifs.
Names Default To Here( 1 );
ex = Associative Array();
ex["a"] = {"10"};
ex["b"] = {"20"};
ex["c"] = {"30"};
<BR />// Add new value to "b"
ex["b"] = {"21"};
show(ex);
//ex = ["a" => {"10"}, "b" => {"21"}, "c" => {"30"}];
// Solution needed
//ex = ["a" => {"10"}, "b" => {"20", "21"}, "c" => {"30"}];Modélisation statistique avancéeFusion et nettoyage des données