Hey,
Sto cercando di eseguire un ciclo for per classificare diverse colonne di dati. Tra le 3 o 4 colonne, la colonna con il valore più alto determina una categoria per l'intera riga. Ho provato a usare questa formula in una nuova colonna inutilmente. Per riferimento sto usando un sottoinsieme di dati che in seguito ho salvato come se fosse un proprio file.
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" ) ) ) ) )
Ho quindi provato a eseguire questo script
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"
È molto apprezzato qualsiasi aiuto sul motivo per cui lo script o la formula non funziona. Lo ammetto, ero un po 'perso quando ho provato a scrivere la sceneggiatura, quindi penso che sia un po' lontano da quello che dovrebbe essere. Ho collegato il file ma ho dovuto rimuovere la prima colonna della tabella dati per problemi di privacy.
Grazie
Grazie per il chiarimento! Ho provato a sostituire (: sottoinsieme collegato) con (dt) nella formula ma non ha prodotto alcuna categoria per la colonna designata. Ho anche provato la tua versione ripulita, ma ancora non ha funzionato. Qualche idea sul perché ci sia ancora un problema con la formula?
Grazie per tutto l'aiuto.
JMP si confonde perché si sta utilizzando un riferimento al nome della colonna (: Sottoinsieme collegato) come variabile di tabella. Inoltre puoi ripulire le tue dichiarazioni if usando un solo IF. Non sono sicuro che sia esattamente ciò che desideri, ma potrebbe darti qualche suggerimento per avvicinarti al tuo obiettivo.
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"
);
);