Come sommare le righe con nomi di colonne variabili?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ho una tabella con un numero variabile di colonne.Voglio aggiungere una colonna che SUM è tutte le colonne di fila, non importa quante/poche appaiono.
Ho provato questo:
TotRow = Trans << Ottieni nomi di colonna ( Numerico ) ;
TR = N articoli ( TotRow ) ;
Trans << Nuova Colonna ( "Tempo totale" ,
Numerico ) ;
Per ogni riga ( : Tempo totale [] = Somma ( Colonna ( TotRow [ 1 :: TR ])[])) ;
Ma riassume solo la prima riga e non il resto.Il numero di colonne e righe è sempre variabile di settimana in settimana.
Ri: Come sommare righe con nomi di colonne variabili?Jeff,
Grazie per la risposta e soprattutto per il link.Ogni giorno che imparo qualcosa di nuovo è una buona giornata.
Ri: Come sommare righe con nomi di colonne variabili?Quello è il operatore di trasposizione di matrice . È un operatore postfisso, quindi funziona sull'argomento alla sua sinistra.
Come Ian@JMP detto, poiché JMP non ha un HSum() devi usare VSum() sulla matrice trasposta e poi trasporre di nuovo.
- Jeff
Ri: Come sommare righe con nomi di colonne variabili?Ian,
È bello avere la risposta, è meglio capire la risposta.
In questa dichiarazione:
sumVec = ( VSum ( stuoia ` )) `;
A cosa servono i `?Capisco l'istruzione VSum, ma non perché `è necessario su entrambi i lati.
Ri: Come sommare righe con nomi di colonne variabili?Ian,
Grazie che ha funzionato perfettamente!
Ri: Come sommare righe con nomi di colonne variabili?Se vuoi sommare tutte le colonne numeriche e non hai bisogno di una colonna formula, puoi fare:
NamesDefaultToHere ( 1 ) ;
// Crea una tabella con cui lavorare
nr = 10 ;
nc = 3 ;
dt = Nuova tabella ( "Alcuni dati continui" ) ;
Per ( c = 1 , c <= nc , c ++,
dt << Nuova colonna ( "Col" || Car ( c ) , Numerico , Continuo , Formula ( Intero casuale ( 1 , 10 ))) ;
) ;
dt << AddRows ( nr ) ;
// Inserisci i dati in una matrice
stuoia = dt << OttieniComeMatrice ;
// Ottieni la somma di ogni riga
sumVec = ( VSum ( stuoia ` )) `;
// Aggiunge la colonna della somma
dt << Nuova colonna ( "Somma" , Numerico , Continuo , I valori ( sumVec )) ;
Nota JSL non ha un 'HSum()' quindi devi trasporre e poi trasporre indietro.