Seite 1 von 1

Neue Zeile auf Basis gefilterter Daten berechnen

Verfasst: Mo Jan 21, 2019 11:17 am
von benne
Hallo allerseits,

ich bearbeite gerade mehrere Datensätze, die alle eine ähnliche Struktur haben.
Auf Ebene der Stadtteile 1 bis 4 liegen jeweils Werte vor und zusätzlich ist noch für jede Datenspalte der Wert für die gesamte Stadt angegeben (Stadtteil 0).
tabelle.png
tabelle.png (87.52 KiB) 274 mal betrachtet
Für die weitere Arbeit möchte ich aber eine Zeile mit den Werten der nicht zuzuordnenden Datensätze anstelle der gesamtstädtischen Werte haben.
Dazu soll der fiktive Stadtteil 9 eingefügt werden und die Tabelle soll zum Schluss wie folgt aussehen:
tabelle9.png
tabelle9.png (87.52 KiB) 274 mal betrachtet
Jetzt kaspere ich schon seit knapp zwei Stunden an dem Problem herum, habe es mit Filtern und Spaltensummen versucht, aber irgendwie sehe ich den Wald vor lauter Bäumen nicht mehr :?
Kann mir jemand einen guten Tipp geben, wie das funktionieren könnte?
Ich habe wieder mal das Gefühl, dass die Lösung quasi auf dem Präsentierteller vor mir liegt, ich sie aber trotzdem nicht sehe.

Schönen Gruß
Benne

Re: Neue Zeile auf Basis gefilterter Daten berechnen

Verfasst: Mo Jan 21, 2019 3:34 pm
von bigben
Hallo Benne,

ich wiederhole mich mal vom 8. Oktober:
Wenn nun fünf von uns sich an einer Lösung versuchen würden, was wäre besser: Wenn Du einen Beispieldatensatz zum Austesten bereit stellst oder wenn jeder von den Fünf sich seinen eigenen Beispieldatensatz erstellt? Eben. Darum poste bitte zu solchen Fragen, die im Grunde gern gesehen sind, ein reproduzierbares Beispiel,
Ahne ich richtig, dass Stadteil 9 den Wert von Stadtteil 0 minus die Werte aller Stadtteile 1 bis 4 enthalten soll? Wenn ja, dann ist das hier vielleicht ein Anfang für Dich:

Code: Alles auswählen

stadt1 <- data.frame(stadtteil = c(1,2,3,4,0),
                  einwohner = c(1000, 1000, 1000, 1000, 10000),
                  arbeitslose = c(5, 10, 15, 15, 45))

erstelle9 <- function(stadt, stadtteile = 1:4){
  zeile9 <- 9
  for(spalte in 2:ncol(stadt)){
    zeile9[spalte] <- stadt[stadt$stadtteil==0, spalte] - sum(stadt[stadt$stadtteil %in% stadtteile, spalte])
  }
  
  return(rbind(stadt, zeile9))
  
}

erstelle9(stadt1)
Wenn nein, erläutere das bitte nochmal, was 9 bedeutet.

LG,
Bernhard