2012-11-20 23 views
14

Ich möchte Summen für bestimmte Spalten berechnen und dann diese Summe für jede Zeile anwenden. Leider kann ich nur zum ersten Schritt kommen. Wie mache ich das jetzt für jede Zeile? Ich weiß, dass R keine Schleifen benötigt, aber was wäre der richtige Ansatz?Summenzellen bestimmter Spalten für jede Zeile

Meine Matrix (zscore) sieht wie folgt aus:

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 

Jetzt würde ich die Zeilensumme für jede Zeile berechnet werden soll, basierend auf einigen der colums. Für eine Zeile könnte es so aussehen:

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

Wie mache ich das jetzt für jede Zeile?

Antwort

33

Man könnte so etwas tun:

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

FANTASTISCH, ich habe es in der Zwischenzeit mit einer Schleife gemacht, aber Ihre Lösung ist WEG sauberer! – user1807857

+0

Das ist die Macht von R :) – alestanis

0

Wenn Sie NA nicht haben Sie diese

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

je nach Datenrahmen oder Matrix, as.numeric vielleicht notwendig, um die Addition zu arbeiten wie: suma.zscore = (as.numeric (zscore $ a) + as.numeric (zscore $ c) ... usw.) –

0

Wenn Ihre Tabelle Spalten nicht-numerischen anwenden können, stellen Sie sicher, dass Sie sie ausschließen in rowSum.

Verwandte Themen