Hey,
J'essaie de lancer une boucle for pour classer plusieurs colonnes de données. Sur les 3 ou 4 colonnes, la colonne avec la valeur la plus élevée dicte une catégorie pour toute la ligne. J'ai essayé d'utiliser cette formule dans une nouvelle colonne en vain. Pour référence, j'utilise un sous-ensemble de données que j'ai ensuite sauvegardées en tant que fichier individuel.
For( i = 1, i < N Row( :Linked Subset ), i++, If( :Linked Subset[i][5] > :Linked Subset[i][3], :Label = "Hormone", If( :Linked Subset[i][4] > :Linked Subset[i][3] & :Linked Subset[i][6] > :Linked Subset[i][3], :Label = "ImmunoChemo", If( :Linked Subset[i][4] > :Linked Subset[i][3], :Label = "Chemo", If( :Linked Subset[i][6] > :Linked Subset[i][3], :Label = "Immuno", :Label = "None" ) ) ) ) )
J'ai ensuite essayé d'exécuter ce script à la place
dt = Open( "~/One Drive/Work/Research/Exported CSV/Subset.jmp" );
For( i = 1, i < N Row( :Linked Subset ), i++,
If( :Linked Subset[i][5] > :Linked Subset[i][3],
:Label = "Hormone",
If( :Linked Subset[i][4] > :Linked Subset[i][3] & :Linked Subset[i][6] > :Linked Subset[i][3],
:Label = "ImmunoChemo",
If( :Linked Subset[i][4] > :Linked Subset[i][3],
:Label = "Chemo",
If( :Linked Subset[i][6] > :Linked Subset[i][3],
:Label = "Immuno",
:Label = "None"
Toute aide pour laquelle le script ou la formule ne fonctionne pas est très appréciée. J'avoue que j'étais un peu perdu en essayant d'écrire le script, alors je pense que c'est un peu loin de ce qu'il devrait être. J'ai lié le fichier mais j'ai dû supprimer la première colonne du tableau de données pour des raisons de confidentialité.
Merci
Merci de clarifier! J'ai essayé de remplacer (: sous-ensemble lié) par (dt) dans la formule, mais aucune catégorie n'a été générée pour la colonne désignée. J'ai aussi essayé votre version nettoyée mais cela ne fonctionnait toujours pas. Des idées pour lesquelles il y a toujours un problème avec la formule?
Merci pour votre aide.
JMP est en train de devenir confus parce que vous utilisez une référence de nom de colonne (: Linked Subset) en tant que variable de table. Vous pouvez également nettoyer vos déclarations if en utilisant un seul SI. Je ne sais pas si c'est exactement ce que vous voulez, mais cela pourrait vous donner des indices pour vous rapprocher de votre objectif.
dt = Open( "~/One Drive/Work/Research/Exported CSV/Subset.jmp" );
For( i = 1, i < N Row( dt ), i++,
If(dt[i][5] > dt[i][3],
:Label = "Hormone",
dt[i][4] > dt[i][3] & dt[i][6] > dt[i][3],
:Label = "ImmunoChemo",
dt[i][4] > dt[i][3],
:Label = "Chemo",
dt[i][6] > dt[i][3],
:Label = "Immuno",
:Label = "None"
);
);