Bonjour à tous!
Par exemple, ce code, lisant les données dans "copydt", et comment utiliser JSL pour lire le "KATIE" dans "copydt" en une seule étape, j'ai utilisé deux étapes dans le code.
dt = Open("$SAMPLE_DATA\Big class.jmp");Wait(0);
copydt = dt[0,0];
dt[0,0] = .;
a=copydt[1,1];
b=a[1,1];
c={copydt[1,1][1,1]};
dt[0,0] = copydt;Wait(0);
De plus, comment modifier les données dans "copydt" directement avec JSL ?
Par exemple, changez le nom de la première ligne en "KATIE2" et changez l'âge de la première ligne en 18.
Écrit les données modifiées dans la table de données d'origine.
Merci!

Pour répondre à la question soulevée dans le sujet de cette discussion, utilisez des indices sur la variable contenant les données formées à partir du tableau de données. Vous pouvez utiliser le débogueur ou le journal pour examiner les résultats au fur et à mesure que vous avancez dans votre exemple. Je vais utiliser le journal.
dt = Open("$SAMPLE_DATA\Big class.jmp");
copydt = dt[0,0];
L'indice utilisé dans dt[0,0] référence toutes les lignes et toutes les colonnes - la table entière. La variable copydt contient une liste de listes. Chaque sous-liste est une ligne dans la table de données d'origine.
dt[0,0] = .;
L'affectation de manquant se produit pour toutes les lignes et toutes les colonnes - la table entière. La table de données contient maintenant 40 lignes de valeurs manquantes pour 5 colonnes de données.
a = copydt[1,1];
Cette expression utilise des indices de liste standard. Vous récupérez le premier élément de la liste. La valeur est une liste représentant la première ligne de la table de données d'origine. Lorsque vous apprenez à inscrire des listes, vous savez que cette expression demande deux fois la même chose - le premier élément. Toutes les expressions suivantes sont identiques.
a = copydt[1];
a = copydt[1,1];
a = copydt[1,1,1];
Ainsi, la première forme est plus concise et préférée.
b = a[1,1];
Identique à l'expression précédente.Vous récupérez le premier élément de la liste. La valeur est une chaîne de caractères de la première colonne de la première ligne de la table de données d'origine.
c = { copydt[1,1][1,1] }; // c = { copydt[1][1] } is equivalent, sufficient, and preferred
Vous avez affecté une liste à un élément à une variable. Aucune évaluation de l'élément de liste n'a eu lieu.
dt[0,0] = copydt;
Vous avez affecté la liste des listes à l'ensemble de la table de données. Chaque sous-liste devient une nouvelle ligne dans la table de données. Cette étape démontre le comportement symétrique entre la deuxième ligne et la dernière ligne.
Pour répondre aux questions soulevées dans le corps de la discussion, vous utilisez des indices :
copydt[1][1] = "Katie2";
copydt[1][2] = 18;
Les indices sont imbriqués. Alors lisez copydt[1][1] = "Katie2" as assign "Katie2" au premier élément à l'intérieur du premier élément. Lire copiedt[1][2] = 18 comme attribuez 18 au deuxième élément à l'intérieur du premier élément.
Notez que la possibilité de mélanger les données entre la table de données, la matrice et les structures de données de liste change avec chaque version de JMP. En général, les capacités augmentent et les différences entre les structures diminuent.
Donc, j'ai expliqué ce que vous avez fait mais je n'ai aucune idée de pourquoi vous l'avez fait ou de ce que vous voulez accomplir. Votre sujet est très vaste et vague. Qu'est-ce que vous voulez faire?
Sélectionner Aider > Livres > Guide de script dans JMP pour obtenir des informations et des explications plus complètes sur les tableaux de données, les listes et les matrices.