Script da eseguire: sottrazione di più colonneCiao gruppo,
Hai bisogno di aiuto per sviluppare uno script per eseguire la sottrazione di più colonne, il nome della colonna e il conteggio sono variabili,
può cambiare in base all'analisi,
È necessario popolare il delta della colonna con differenze di tutto il valore della stessa riga,
dati campione come di seguito

risultato atteso:

Modellazione statistica avanzataAutomazione e scriptingRe: Sottrazione di più colonneCiao Jim,
Grazie per l'aiuto,
soluzione che funziona bene 
Re: Sottrazione di più colonnePotresti anche trasformarlo in una funzione se hai bisogno di usarlo più volte.
Ecco un esempio:
- Funzione
- Utilizza regex per filtrare le colonne di interesse
- Richiede JMP16 a causa del filtro ciascuno
- Utilizza Loc() e calcoli con matrici
- Crea una nuova colonna delta con i valori
Names Default To Here(1);
//example datatable
dt = New Table("Untitled",
Add Rows(5),
Compress File When Saved(1),
New Column("Column 1",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([1, 0, 0, 1, 0]),
Set Display Width(55)
),
New Column("Column 2", Numeric, "Continuous", Format("Best", 12), Set Values([0, 2, 3, 0, 0])),
New Column("Column 3",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([0, 3, 0, 0, 0]),
Set Display Width(87)
),
New Column("Column 4", Numeric, "Continuous", Format("Best", 12), Set Values([3, 0, 4, 0, 0])),
New Column("col", Character, "Nominal", Set Values({"a", "a", "a", "a", "a"}))
);
difference_between_min_max = Function({dt_ref, col_prefix_regex},
{Default Local},
//get columnn names of interest based on col_prefix
col_names_all = dt_ref << Get Column Names("Numeric", "String");
col_names_of_interest = Filter Each({val}, col_names_all,
!IsMissing(Regex(val, col_prefix_regex));
);
show(col_names_of_interest);
//all values for columns of interest, transpose for calculations
m = Transpose(dt_ref[0, col_names_of_interest]);
//replace 0 with missing to avoid calculation with those
m[Loc(m, 0)] = .;
//Get max and min values and deduct them
result = V Max(m) - V Min(m);
//Replace missing values with 0 for final results
result[Loc(result,.)] = 0;
//we could return result matrix here OR we can create new column with the function
dt_ref << New Column("delta", Numeric, Continuos, Set Values(result));
);
//example table in this example
difference_between_min_max(dt, "(Column )");
//example table by txnelson
//difference_between_min_max(Current Data Table(), "^(\D{1})$");
Potrebbe anche trasformarlo in Funzione personalizzata
Re: Sottrazione di più colonneSupponendo che tu non conosca i nomi e non conosci il numero di colonne, il codice seguente creerà la formula richiesta, quindi creerà la nuova colonna con la formula generata
Names Default To Here( 1 );
dt = Current Data Table();
// Get the columns
colNames = dt << get column names( string, continuous );
// Build the formula
theExpr = "dt<<NEW column=""></NEW>

La tabella dei dati di esempio che ho utilizzato è allegata
Re: Sottrazione di più colonneCiao Jim,
Grazie per l'input,
Ma il nome della colonna è un controllo variabile e il nome può cambiare in base all'esecuzione,
come codificare in quella situazione?
Re: Sottrazione di più colonneEcco la formula che userei.Si basa sulla funzione di matrice Loc() che restituisce tutte le voci diverse da zero in una matrice.
x = :data[Row()] || :data1[Row()] ||
:data2[Row()] || :data3[Row()] ||
:data4[Row()] || :data5[Row()] ||
:data6[Row()] || :data7[Row()] ||
:data8[Row()] || :data9[Row()];
y = Loc( x );
Try( x[y[2]] - x[y[1]], . );
Re: Sottrazione di più colonneCIAO ,
Stavo scrivendo uno script per l'analisi dei dati e ho bisogno che questo implementi questa logica tra il codice solo per una tabella dati,
puoi aiutarmi a indicare il codice che posso usare
grazie in anticipo
Re: Sottrazione di più colonneOra capisco, in quel caso utilizzerei personalmente la funzione di trasformazione personalizzata nel file Strumenti di scripting aggiungere.Selezionarei tutte le colonne che desideri trasformare (penso data1-data10), quindi selezionare Trasformazione personalizzata dal menu Cols (disponibile dopo l'installazione del componente aggiuntivo) e inserire queste impostazioni:

Re: Sottrazione di più colonneOutput previsto in delta come di seguito,

Re: Sottrazione di più colonneCiao, grazie per la risposta,
Sto usando JMP15 puoi aiutarmi a indicare il codice che posso usare,
Sono un principiante in JMP
grazie in anticipo
Re: Sottrazione di più colonneCIAO @jinsejoseph
Puoi fornire un esempio della formula che desideri utilizzare?Sembra qualcosa che utilizzerei la trasformazione personalizzata nel file Strumenti di scripting componente aggiuntivo per.
