Addieren spezifischer Zeilen und Zuweisen neuer rownames

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Antworten
Mandible
Beiträge: 4
Registriert: Mo Feb 21, 2022 9:27 am

Addieren spezifischer Zeilen und Zuweisen neuer rownames

Beitrag von Mandible »

Hallo zusammen,

ich suche eine Möglichkeit, bestimmte Zeilen zu addieren und dem Ergebnis einen neuen Namen (rowname) zuzuweisen.

Code: Alles auswählen

year <- c(2005,2005,2005,2006,2006,2006,2007,2007,2007)
category <- c("a","b","c","a","b","c","a","b","c")
value <- c(3,6,8,9,7,4,5,8,9)
df <- data.frame(year, category,value, stringsAsFactors = FALSE)
Letztlich soll das Ganze so aussehen:
year category value
2005 a 3
2005 b 6
2005 c 8
2005 abc 17
2006 a 9
2006 b 7
2006 c 4
2006 abc 20
2007 a 5
2007 b 8
2007 c 9
2007 abc 22

Ich habe bis jetzt nur Beispiele gefunden, in denen die Zeilennummern angegeben werden. Bei sehr großen Datensätzen macht aber weniger Sinn.

Für Tipps wäre ich sehr dankbar.
bigben
Beiträge: 2781
Registriert: Mi Okt 12, 2016 9:09 am

Re: Addieren spezifischer Zeilen und Zuweisen neuer rownames

Beitrag von bigben »

Hallo Mandible,

die Summen von value pro Jahr kannst Du beispielsweise so bestimmen:

Code: Alles auswählen

aggregate(value ~ year, FUN = sum)
Das Einsortieren von Zwischensummenzwischen die Werte erscheint komisch und nicht die übliche Art, mit Daten in R umzugehen. Ich glaube da wäre es besser, wenn Du den Zweck der Übung noch etwas präziser und mit mehr "Drumherum" definieren würdest, dann können wir hoffentlich bessere Ratschläge geben.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Mandible
Beiträge: 4
Registriert: Mo Feb 21, 2022 9:27 am

Re: Addieren spezifischer Zeilen und Zuweisen neuer rownames

Beitrag von Mandible »

Hallo bigben,

vielen Dank für deine schelle Rückmeldung.
Ich habe einen Datensatz mit verschiedenen Gemeinden, Jahren und den Bevölkerungsdaten. Und diese Gemeinden sollen nun auch den entsprechenden Kreisen (zum Kreis Steinfurt gehören zum Beispiel die Gemeinden Hörstel, Ibbenbüren usw.) zu zugeordnet werden.
Wenn also die Gemeinden a, b und c habe, möchte diese Gemeinden aggregieren und entsprechend Kreis abc nennen.
Und das Ganze für mehrere Jahre.

Es sind letztlich über 40 Gemeinden in vier Kreisen, über 15 Jahre.
bigben
Beiträge: 2781
Registriert: Mi Okt 12, 2016 9:09 am

Re: Addieren spezifischer Zeilen und Zuweisen neuer rownames

Beitrag von bigben »

Hallo Mandible,

es reicht also, wenn die Daten entsprechend zusammengefasst werden und es ist nicht essentiell, die Ausgangsdaten und die aggregierten Daten zu vermischen. Dann stellt sich die Frage, woran R erkennen soll, welche Städte als ein Kreis zusammengefasst werden sollen. Derzeit haben wir im Beispiel nur Jahr, Name der Stadt (category) und Bevölkerungszahl und ich habe Dir vorgeschlagen, die Bevölkerungszahl pro Jahr aufzuaddieren. Wenn ich Dich richtig verstehe, gibt es aber mehrere verschiedene Kreise? Gibt es vielleicht noch eine weitere Spalte mit Kreiszugehörigkeit, die im Beispieldatensatz noch fehlt?

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Mandible
Beiträge: 4
Registriert: Mo Feb 21, 2022 9:27 am

Re: Addieren spezifischer Zeilen und Zuweisen neuer rownames

Beitrag von Mandible »

Hallo bigben,

das ist alles soweit richtig. Eine Spalte mit den Kreisnamen gibt es im meinem Datensatz nicht. Dann müsste ich die Gemeinden den spezifischen Kreisen zuordnen (neue Spalte) und entsprechend dieser Spalte addieren?
ruedi_br
Beiträge: 159
Registriert: Do Mär 01, 2018 3:53 pm

Re: Addieren spezifischer Zeilen und Zuweisen neuer rownames

Beitrag von ruedi_br »

Hallo zusammen,
wenn Gemeinden zu Kreisen zusammengefasst werden sollen: bietet sich da nicht die Gemeindekennziffer https://www.destatis.de/DE/Themen/Laend ... nhalt.html als Zusatzinfo an? Mit entsprechend reduziertem Schlüssel (Stelle 3 bis 5) sind dabei gleich die Kreise abbildbar.
VG
Ruedi
fortune(111)
bigben
Beiträge: 2781
Registriert: Mi Okt 12, 2016 9:09 am

Re: Addieren spezifischer Zeilen und Zuweisen neuer rownames

Beitrag von bigben »

Hallo!
Mandible hat geschrieben: Mo Feb 21, 2022 5:34 pmDann müsste ich die Gemeinden den spezifischen Kreisen zuordnen (neue Spalte) und entsprechend dieser Spalte addieren?
Ich dachte, dass das Deine Vorgabe ist. Wenn Du das uns fragen musst, reden wir vielleicht noch aneinander vorbei.
Du schreibst:
zum Kreis Steinfurt gehören zum Beispiel die Gemeinden Hörstel, Ibbenbüren usw.
Hörstel, Ibbenbühren usw. sind die a, b, und c in Deinem Beispiel. Eine Entsprechung für "Steinfurt" fehlt in Deinem Datenbeispiel. Woher weiß R denn, dass Hörstel und Ibbenbühren gemeinsam in einen Kreis SteinfurtHörstelIbbenbühren und nicht in irgendwas andere zusammengeführt werden, wenn es da keine Spalte gibt, die Steinfurt, Hörstel und Ibbenbühren einen gemeinsamen Kreis zuweist? Oder haben wir eine eigene Datei pro Kreis?

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Mandible
Beiträge: 4
Registriert: Mo Feb 21, 2022 9:27 am

Re: Addieren spezifischer Zeilen und Zuweisen neuer rownames

Beitrag von Mandible »

Code: Alles auswählen

jahr <- c(2005,2005,2005,2006,2006,2006,2007,2007,2007)
gemeinde <- c("a","b","c","d","e","f","g","h","i")
bevölkerung <- c(3,6,8,9,7,4,5,8,9)
kreise<- c("abc", "abc", "abc", "def", "def", "def", "ghi", "ghi", "ghi")
df <- data.frame(jahr, gemeinde, bevölkerung, kreise, stringsAsFactors = FALSE)
jahr gemeinde bevölkerung kreise
2005 a 3 abc
2005 b 6 abc
2005 c 8 abc
2006 d 9 def
2006 e 7 def
2006 f 4 def
2007 g 5 ghi
2007 h 8 ghi
2007 i 9 ghi
2005 abc 17 (-abc)
2006 def 20 (-def)
2007 ghi 22 (-ghi)

Hallo zusammen,
ich habe jetzt eine neue Spalte mit den entsprechenden Kreisen hinzugefügt und möchte nun die Daten entsprechend dieser Kreise aggregieren.
Könntet ihr mir dazu eine Hilfestellung geben? Die Spalte kreise soll wieder gelöscht werden und die Spalte gemeinde soll die Kreisnamen übernehmen.
bigben
Beiträge: 2781
Registriert: Mi Okt 12, 2016 9:09 am

Re: Addieren spezifischer Zeilen und Zuweisen neuer rownames

Beitrag von bigben »

Hallo,

ich weiß immer noch nicht, ob ich es richtig verstanden habe, weil jetzt in jedem Jahr ein anderer Kreis untersucht wird, nicht aber in einem Jahr verschiedene Kreise. So bräuchte man die Spalte "kreise" nicht, weil die Zusammenfassung nach Jahr reichen würde. Habe ich es denn jetzt richtig verstanden, dass in einem Jahr mehrere Kreise vorkommen?

Code: Alles auswählen

> zusammenfassung <- aggregate(bevölkerung ~ jahr + kreise, data = df, FUN = sum)
> print(zusammenfassung)
  jahr kreise bevölkerung
1 2005    abc          17
2 2006    def          20
3 2007    ghi          22
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Antworten