2012-11-20 16 views
14

Vorrei calcolare le somme per alcune colonne e quindi applicare questa somma per ogni riga. Purtroppo, posso solo arrivare al primo passaggio. Come faccio ora a realizzarlo per ogni riga? So che R non ha bisogno di cicli ma quale sarebbe l'approccio corretto?celle di somma di determinate colonne per ogni riga

La mia matrice (Zscore) si presenta così:

a b c t y 
1 3 4 7 7 4 

2 4 56 6 6 4 

3 3 3 2 1 7 

4 3 88 9 9 9 

Ora vorrei calcolare la somma riga per ogni riga, sulla base di alcune delle colonne. Per una riga potrebbe essere il seguente:

f1 <- sum(zscore[1,1:2], zscore[1,3], zscore[1,5]) 

Come faccio ora per ciascuna riga?

risposta

33

Si potrebbe fare qualcosa di simile:

summed <- rowSums(zscore[, c(1, 2, 3, 5)]) 
+0

INCREDIBILE, l'ho fatto con un ciclo nel frattempo, ma la tua soluzione è WAY più pulita! – user1807857

+0

Questa è la potenza di R :) – alestanis

0

Se non si dispone di NA è possibile applicare questo

suma.zscore = (zscore$a + zscore$c + zscore$t + zscore$y) 
+0

a seconda del dataframe o della matrice, come.numeric forse necessario per ottenere l'aggiunta di lavoro come: suma.zscore = (as.numeric (zscore $ a) + as.numeric (zscore $ c) ... ecc.) –

0

Se la tabella ha colonne non numerici, assicurarsi che li esclude in rowSum.

Problemi correlati