2017-11-19 3 views
1

das ist meine erste Frage zu Stack. Ich suche nach einem effizienten Weg, um Werte in einer Reihe zu gruppieren und zu summieren. Meine Daten in Zeile ist so verteilt: 10000 10 20000 20 40000 12 60000 23 10000 12 40000 17. Ich brauche ein Ergebnis: 10000 22 20000 20 40000 29 60000 23. Große Zahlen sind Merkmale, kleinere - Vorkommen.Gruppe und Summe nach Zeilen in R

example of row from data

Das ist meine realen Daten - zum Beispiel für 10004 brauche ich 23 Ich habe versucht, mit Schlaufen, zu aggregieren, aber ich kann das nicht tun.

+4

Willkommen bei Stackoverflow! Bitte lesen Sie die Informationen über [wie man eine gute Frage stellt] (http://stackoverflow.com/help/how-to-ask) und wie man ein [reproduzierbares Beispiel gibt] (http://stackoverflow.com/questions/ 5963269/how-to-make-a-great-r-reproduzierbares Beispiel/5963610). Dies wird es anderen sehr erleichtern, Ihnen zu helfen. – Jaap

Antwort

0

Sie können dies tun, mit aggregate

## Your data 
Row = c(11131132, 10004, 5, 265098, 3, 190029, 2, 
    265092, 2, 265077, 17, 10004, 18, 
    265097,17, 265098,15,190029,2, 265099,17) 

ID = Row[seq(2,length(Row), 2)] 
value = Row[seq(3,length(Row), 2)] 
GroupSum = aggregate(value, list(ID), sum) 
GroupSum 
    Group.1 x 
1 10004 23 
2 190029 4 
3 265077 17 
4 265092 2 
5 265097 17 
6 265098 18 
7 265099 17