Get Selected Rows entraîne une erreur lors de l'utilisation des lignesHé,
Je n'arrive pas à comprendre pourquoi les résultats suivants génèrent une erreur :
For( i = 1, i <= N Items(list), i++,
item = list[i];
rows = dt << Get Rows Where(
dt:foo == item
);
Column(dt, "bar" )[rows] = "foobar";
);
L'erreur est :
"Impossible de définir la valeur de la colonne 'bar' car le numéro de ligne (-1) n'est pas valide.{941}"
Quelqu'un peut-il m'éclairer ?
Merci!
Re : Obtenir les lignes sélectionnées entraîne une erreur lors de l'utilisation des lignesJe pense que cette erreur peut survenir en raison de la table de données actuelle.Le script ci-dessous générera une erreur, mais si vous commentez la ligne Current Data Table (dt), cela fonctionne comme prévu.Je ne sais pas pourquoi cela fonctionne de cette façon - nous l'examinerons plus en détail pour voir si des modifications sont possibles pour éviter d'avoir à modifier la table de données actuelle ().
dt=Open("$SAMPLE_DATA/Big Class.jmp");
dt<<SELECT where=""></SELECT>Re : Obtenir les lignes sélectionnées entraîne une erreur lors de l'utilisation des lignesVotre supposition est en quelque sorte correcte. "dt" est en fait la table de données d'origine. De là, je dérive d'autres tableaux, puis j'identifie les éléments que je veux sélectionner.
Maintenant que les éléments, je retourne à "dt" et exécute "<< Get Rows Where (items i want to get)" pour obtenir les numéros de ligne. Ensuite, j'aime définir "dt:colum[rows i got] = ...".
Désolé que je ne puisse pas l'expliquer mieux ou fournir les données.
Re : Obtenir les lignes sélectionnées entraîne une erreur lors de l'utilisation des lignesVotre table 'dt' est-elle dérivée d'une autre table ?Je pense qu'il essaie peut-être de mapper un numéro de ligne d'une table à une autre, mais il est difficile de dire avec certitude sans en savoir plus sur les données.
Re : Obtenir les lignes sélectionnées entraîne une erreur lors de l'utilisation des lignesMerci pour la réponse rapide!
La colonne est correctement définie et j'ai essayé de nombreuses variantes maintenant. Convertir la matrice en une liste et l'itérer, etc. --> ne fonctionne pas.
Je sais que ça devrait bien fonctionner. J'utilise en fait "<< Get Rows Where" dans le même script et cela fonctionne.
Cependant, je suis maintenant passé à la bonne vieille boucle For Each Row pour faire le tour, pas de problème ici.
Re : Obtenir les lignes sélectionnées entraîne une erreur lors de l'utilisation des lignesVoici votre script, exécuté avec des exemples de données qui ne posent aucun problème lors de l'exécution de JMP 12 ou JMP 14.Ce que je vérifierais sur vos données, c'est que la colonne "bar" est définie comme une colonne de caractères.
names default to here(1);
dt=New Table( "Example",
Add Rows( 3 ),
New Column( "foo", Character, "Nominal", Set Values( {"a", "", "a"} ) ),
New Column( "bar", Character, "Nominal", Set Values( {"", "", ""} ) )
);
list = {"a","b"};
For( i = 1, i <= N Items(list), i++,
item = list[i];
rows = dt << Get Rows Where(
dt:foo == item
);
Column(dt, "bar" )[rows] = "foobar";
);