Somma valori specifici in determinate righe/colonneCiao,
Sto lavorando con una tabella di dati strutturata in modo strano. Se vedi la tabella qui sotto (non dati reali, ma una somiglianza), devo trovare la somma di tutti i numeri rossi, e poi la somma di tutti i numeri verdi. Preferibilmente, verrà creata una colonna aggiuntiva e ogni riga per Bob leggerà la somma rossa e ogni riga per Bill leggerà la somma verde. Qualcuno potrebbe darmi una panoramica di come potrei fare per farlo?
| Nome | Età | Prova 1 | Prova 2 | Prova 3 |
| Bob | 1 | 10 | 22 | 34 |
| Bob | 1 | 10 | 22 | 34 |
| Bob | 2 | 12 | 24 | 36 |
| Bob | 2 | 12 | 24 | 36 |
| Bob | 3 | 14 | 26 | 38 |
| Bob | 3 | 14 | 26 | 38 |
| Conto | 1 | 16 | 28 | 40 |
| Conto | 1 | 16 | 28 | 40 |
| Conto | 2 | 18 | 30 | 42 |
| Conto | 2 | 18 | 30 | 42 |
| Conto | 3 | 20 | 32 | 44 |
| Conto | 3 | 20 | 32 | 44 |
Grazie in anticipo!
Ri: Somma valori specifici in determinate righe/colonneMolto utile! Grazie!!
Ri: Somma valori specifici in determinate righe/colonneMi dispiace, ma nella fretta non ho notato il fatto che le righe sono duplicati autentici (come potresti aver visto dal mio esempio). Inoltre, non ho apprezzato il fatto che tu voglia sommare le colonne.
Se puoi fare affidamento su questa rigorosa duplicazione, allora potresti fare:
NamesDefaultToHere(1);
// Make some test data: Note that pairs of rows are duplicates!
dt = New Table( "Test Data",
New Column( "Group", Numeric, "Nominal", Values([1,1,1,1,1,1,2,2,2,2,2,2])),
New Column( "Test 1", Numeric, "Ordinal", Values([2,2,3,3,4,4,5,5,6,6,7,7])),
New Column( "Test 2", Numeric, "Ordinal", Values([1,1,2,2,3,3,4,4,5,5,6,6]))
);
// List of columns for Summary
colList = {:Test 1, :Test 2};
// Summary
dt2 = dt << Summary(Group( :Group ), Sum( Eval(colList) ), StatisticsColumnNameFormat("column"));
// Sum over the columns in the summary, but also divide by 2 to account for the duplicate rows in dt
// (1) Template exprtession
CMD = Expr(dt2 << New Column( "Required Sum", Numeric, "Continuous", Formula( Sum(colsTBD) / 2 )));
// (2) Substitute in the columns we have
SubstituteInto(CMD, Expr(colsTBD), Eval(colList));
// (3) Use the expression we have built
CMD;
Ri: Somma valori specifici in determinate righe/colonneGrazie,
Tuttavia, supponiamo che volessi semplicemente aggiungere tutti i valori in una riga specifica per un intervallo di colonne. Ho trovato questo frammento di codice di seguito che penso aggiunga tutte le celle di una riga tra le colonne numero TR e TD. Tuttavia, restituisce semplicemente il valore della cella TD. Perché è questo e come posso farlo funzionare?
TotRow = dt << Ottieni nomi colonne (numerico);
TR = N elementi(TotRow);
TD = N Items(colnamesSix);
dt << Nuova colonna("Totale", Numerico);
For Each Row( :Total[] = Sum( Column(TotRow[TD :: TR])[]) );
Ri: Somma valori specifici in determinate righe/colonneNon potresti usare Analizza - Tabula?Inserisci il nome seguito dall'età nelle righe e quindi utilizza la media del test 1 (e anche le colonne per il test 2 e il test 3): la media serve per evitare il doppio conteggio dei valori duplicati.Quindi trasformalo in una tabella di dati.Da lì, sei quasi dove vuoi essere.
Ri: Somma valori specifici in determinate righe/colonneNel semplice caso di un numero pari di righe in ciascun gruppo, potresti fare qualcosa del genere:
NamesDefaultToHere(1);
// Make some test data
dt = New Table( "Test Data",
Add Rows( 20 ),
New Column( "Group", Numeric, "Nominal", Values(VConcat(J(10, 1, 1), J(10, 1, 2)))),
New Column( "Test 1", Numeric, "Ordinal", Values(J(20, 1, RandomInteger(1,30)))),
New Column( "Test 2", Numeric, "Ordinal", Values(J(20, 1, RandomInteger(1,100))))
);
// Add a 'Subgroup' column
dt << NewColumn("Subgroup", Numeric, Nominal, Values(Repeat((1::2)`, 10)));
// Make a summary table
dt2 = dt << Summary(Group( :Group, :Subgroup ), Sum( :Test 1 ), Sum( :Test 2 ));
dt2 << selectWhere(:Subgroup == 2);
dt2 << hideAndExclude;
dt2 << clearSelect;Ri: Somma valori specifici in determinate righe/colonneSÌ! È esattamente ciò di cui ho bisogno.
Ri: Somma valori specifici in determinate righe/colonneHai bisogno delle somme per ogni seconda riga (a partire dalla prima), all'interno di ciascun gruppo definito dai valori in "Nome"?