-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathowiskript_v2.R
47 lines (37 loc) · 1.48 KB
/
owiskript_v2.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
print("Starte Skript.")
o <- scan("owi-daten-rv-2015.csv", sep=";", #nmax=337,
what = list(tag = "",
zeit = "",
ort = "",
tat = "",
geld = ""),
skip=1 )
for(i in 1:length(o$zeit)) # jede Zeile durchgehen, um führende Null bei Uhrzeit zu ergänzen (hässlicher Workaround)
{
if ( nchar(o$zeit[i]) == 3 )
{
o$zeit[i] = paste("0",o$zeit[i],sep = "")
}
}
o$datum_mit_zeit = strptime(paste(o$tag, o$zeit), "%d.%m.%Y %H%M")
o$stunde = as.numeric(substr(o$zeit,1,2))
o$tag <- as.Date(o$tag, format = "%d.%m.%Y")
o$wtag <- weekdays(o$tag)
eurosymbol="\U20AC" #Direkte Eingabe von "???" in RStudio-Skript führt zu Fehlcodierung
o$eur <- round(as.numeric(gsub(",",".",gsub(eurosymbol,"",o$geld)))/5.0)*5 # Runden wegen Tippfehler-Werte 15,01 ??? etc
owi=as.data.frame(o) # Nun weiter mit Data Frame
owi = na.exclude(owi) #Bons mit "- ???" werden als Fehlbuchungen interpretiert und aus Datenimport eliminiert
print(summary(owi))
# print(tapply(owi$eur,owi$stunde,sum ))
taten <- table(owi$tat)
taten <- sort(taten,decreasing=TRUE)
print(taten) # Zur Anzeige häufiger und seltener Tatbestände
library(ggplot2)
g=ggplot(owi, aes(x = stunde, fill = format(eur) )) +
geom_bar() +
xlab("Uhrzeit") +
ylab("Festgestellte Ordnungswidrigkeiten") +
labs(fill="Bußgeld (EUR)") +
ggtitle("Bußgelder im ruhenden Verkehr der Stadt Moers (2015)")
print(g)
print("Skript beendet.")