Spaß mit R und Berlin Open Data I: Die Zuwendungsdatenbank

von

in

Zur Zeit beschäftige ich mich mit der statistischen Programmiersprache R, und weil das Üben mit echten Datensätzen mehr Spaß macht, habe ich mir auf OpenData Berlin einen interessanten Datensatz herausgesucht – die Zuwendungsdatenbank.

In der Zuwendungsdatenbank werden die von den Behörden ausgereichten Zuwendungen an juristische Personen veröffentlicht (ab einem Zuwendungsbetrag i. H. v. 100 Euro rückwirkend für die letzten 5 Jahre), aktuell die Zuwendungen des Jahres 2016.

Der Datensatz ist schön groß: 40.820 Zeilen, also Zuwendungen mit zehn (eigentlich neun – id ist nur eine fortlaufende Nummer) Variablen:
[1] "id" "name" "geber" "art" "jahr" "anschrift"
[7] "politikbereich" "zweck" "betrag" "empfaengerid"

Zunächst werfe ich einen Blick in die Spalte betrag:
summary(all$betrag)
Min. 1st Qu. Median Mean 3rd Qu. Max.
100 4673 16477 229216 61176 487261162

Der Mindestbetrag liegt bei 100 €, das wusste ich schon aus der Beschreibung des Datensatzes. Die Höchstzuwendung liegt bei stattlichen 487.261.162 €. Wer hat die erhalten und wofür?
> all[all$betrag == max(all$betrag),]

id name geber art jahr
9445 18889 BVG Senatsverwaltung für Stadtentwicklung und Umwelt Projektförderung 2013
anschrift politikbereich zweck betrag empfaengerid
9445 Holzmarktstraße 15-17, 10179 Berlin Verkehr U 8; Nord 487261162 hra_031152

Die BVG erhielt den Betrag für den Zweck „U 8; Nord“ in 2013.

Wieviel wurde insgesamt zugewendet?
> sum(as.numeric(all$betrag))
[1] 9356595690

Der Datensatz bildet also 9.356.595.690 € Gesamtzuwendungen in den Jahren 2012 bis 2016 ab.

Damit es auch mal etwas komplizierter wird, habe ich ein kleines Skript geschrieben, welches für jeden in der Spalte name vorkommenden Empfänger die Häufigkeit zählt, mit der er Zuwendungen erhalten hat. Das wird am Schluss per summary ausgegeben:

x <- unique(all$name)
vec <- c()
for (i in 1:length(x)) { vec <- c(vec,nrow(all[all$name == x[i],])) }
summary(vec)

Min. 1st Qu. Median Mean 3rd Qu. Max.
1.0 1.0 2.0 4.4 4.0 667.0

Die Mindestzahl an Zuwendungen liegt erwartbar bei 1, das Maximum hingegen bei imposanten 667. Inzwischen überrascht es niemanden mehr: Empfängerin war auch hier die BVG.

Fortsetzung folgt