-
Notifications
You must be signed in to change notification settings - Fork 0
/
14-Daten.Rmd
379 lines (280 loc) · 16.8 KB
/
14-Daten.Rmd
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
# (PART\*) Appendix {-}
# FHSWF Package
Für die Bearbeitung im Rahmen des Kurses steht Ihnen das `fhswf` Package zur Verfügung. Dieses ergänzt R um einige spezielle Funktionen, stellt weitere Datensätze bereit und installiert Vorlagen (Templates) für Seminar-, Gruppen- und Abschlussarbeiten sowie für Präsentationen.
## Installation
Das `fhswf` Package befindet sich aktuell noch in der Entwicklung und ist daher noch nicht im zentralen offiziellen Package Archiv (CRAN) gelistet. Für die Installation benötigen Sie eine Funktion aus dem Paket `remotes`, dass einmalig installiert werden muss. Die jeweils neuste `fhswf`-Paketversion erhalten Sie mit dem folgenden Programmcode.
```{r, eval = FALSE}
install.packages("remotes") # Muss nur einmalig ausgeführt werden
remotes::install_github("bchwtz/fhswf") # Neueste Paketversion installieren
```
## Template
Nach der Installation des `fhswf` Packages, müssen Sie die erforderlichen Werkzeuge für die Nutzung des Rmarkdown Templates installieren und initialisieren. Dafür müssen die folgenden Befehle ausgeführt werden.
```{r, eval = FALSE}
tinytex::install_tinytex() # LaTeX installieren
fhswf::install_fhswf() # Fehlende LaTeX Pakete installieren
```
Der Installationsprozess ergänzt eine Vielzahl von LaTeX Komponenten und benötigt je nach Leistung und Auslastung des benutzten Computers **etwa 30 Minuten**.
<!-- Das folgende Video zeigt den vollständigen Installationsprozess und das erstellen eines PDFs mit Hilfe des Templates. -->
## Nutzung des Templates
Um das Template fhswf-seminarpaper nutzen zu können, klicken Sie unter
`File` auf `New File` und dann auf `R Markdown...`.
Anschließend öffnet sich ein Fenster, in dem Sie auf "From Template" klicken und dann sollte dort "FHSWF - Seminarpaper (pdf)" aufgelistet sein (siehe Abbildung \@ref(fig:fig-template-fhswf)). Dieses Template klicken Sie dann an, geben unter "Name" (siehe Abbildung \@ref(fig:fig-template-fhswf)) einen Namen für die Rmd-Datei ein, bestätigen dies mit `OK` und das Template öffnet sich anschließend (es wird ein Ordner mit dem von Ihnen angegebenen Namen erstellt, in dem alle für das Template erforderlichen Dateien abgespeichert sind).
```{r fig-template-fhswf, echo=FALSE, fig.cap="(ref:fhswftemplate)", out.width="100%"}
knitr::include_graphics("ScWrt_in_RMarkdown/screenshot_template_fhswf.PNG")
```
(ref:fhswftemplate) Aufruf des Templates FHSWF - Seminarpaper (pdf) aus dem R-Paket `fhswf` [@fhswf].
**Verweis auf Quellen und Quellenverzeichnis**
Um auf die von Ihnen verwendeten Quellen im Text zu verweisen und um diese einschließlich der von Ihnen genutzten R-Pakete im Quellenverzeichnis anzuführen, nutzen Sie das `fhswf` Seminarpaper Template wie folgt:
Indem Sie das Template FHSWF - Seminarpaper verwenden, wird eine Bib-Datei namens *references* automatisch mitgeladen. In dieser Datei sehen Sie Einträge, die jeweils für beispielhafte Quellen angelegt worden sind, wie z.B.:
```{r, echo=TRUE, eval=FALSE}
@ARTICLE{BC64,
title = {An analysis of transformations},
author = "Box, George E P and Cox, David R",
journal = "Journal of the Royal Statistical Society. Series B",
volume = 26,
number = 2,
pages = "211--252",
year = 1964
}
```
Für die von Ihnen genutzten Quellen legen Sie entsprechend einzelne Einträge in references.bib an.
Im Text (in R Markdown) verweisen Sie dann auf die verwendeten Quellen mithilfe des @-Symbols wie z.B. \@BC64 (BC64 ist eine ID für die entsprechende Quelle, diese ID darf keine Leerzeichen enthalten). Im - basierend auf dem R Markdown-Dokument - generierten PDF-Dokument erscheinen dann entsprechend der/die Autor(en) und das Erscheinungsjahr.
Wenn Sie das fhswf-seminarpaper Template öffnen, sind im Abschnitt *Using Citations* Beispiele zum Thema Zitation gegeben.
Sind Ihre Quellen in der Bib-Datei angelegt und haben Sie auf diese im Text verwiesen, wird automatisch ein Literatur- bzw. Quellenverzeichnis erstellt.
Möchten Sie Quellen, auf die Sie **nicht** im Text verweisen, manuell zum Quellenverzeichnis hinzufügen, legen Sie ebenfalls entsprechende Einträge in der Bib-Datei an und rufen diese über "\\nocite{IDderQuelle}" in R Markdown auf.
## Wissenschaftliches Arbeiten in R Markdown
Um das wissenschaftliche Arbeiten und Schreiben *in R Markdown* zu erleichtern, wurde das FHSWF Seminarpaper Template mit Hinweisen zum Thema wissenschaftliche Sprache, zur Erstellung von Tabellen, Abbildungen, Gleichungen, zur Darstellung von Code, zur Zitation etc. gefüllt.
Diese können über nachfolgende Links heruntergeladen werden.
| Description | R script |
| :---: | :--------: |
| R Markdown Datei: FHSWF Template mit Notizen und Hinweisen | [FHSWF Template mit Hinweisen (.Rmd)](ScWrt_in_RMarkdown/ScWrt_Template_with_hints.Rmd) |
| PDF Datei: FHSWF Template mit Notizen und Hinweisen | [FHSWF Template mit Hinweisen (.pdf)](ScWrt_in_RMarkdown/ScWrt_Template_with_hints.pdf) |
| bib-Datei des mit Hinweisen versehenen FHSWF Templates | [references.bib](ScWrt_in_RMarkdown/references.bib) |
## Datacamp(-zertifikate)
Komfortables Einbetten der Datacamp Zertifikate in das erzeugte PDF erlaubt die Funktion `fhswf::include_datacamp()`. Dazu müssen die PDF Dokumente in einem Unterorder des Seminararbeits-Projektes abgelegt werden. In der Standardeinstellung nutzt die Funktion `fhswf::include_datacamp()` einen Ordner mit dem Namen `datacamp`. Die Dateinamen der Zertifikate und der Dateipfad sollten keine Sonderzeichen enthalten, da dies häufig zu Problemen führt. Auch Leerzeichen im Namen der Zertifikate sollten vermieden werden. Die Funktion `fhswf::include_datacamp()` benennt die PDF Dateien der Zertifikate (in der Standardeinstellung) automatisch um, sodass bei der Erstellung des Seminarpapers weniger Fehler auftreten. Der nachfolgende Screenshot zeigt den notwendigen Programmcode für die Einbettung der Zertifikate und das daraus resultierende Ergebnis. Dabei werden die PDF Dokumente bewusst in der geringen Größe eingebettet - diese sind detailreich, hereinzoombar und daher für die Korrektoren gut prüfbar. Der Programmcode ist ebenfalls auf der Hilfeseite `?include_datacamp()` einsebar.
![](./data/rstudio-datacampcertificates.png)
# Daten
## 2024: Guide Michelin
```{r, eval = FALSE}
library(fhswf) # Laden des fhswf-Packages
View(michelin) # Anzeigen der Daten
michelin # Anzeigen der Daten auf der Konsole
?michelin # Anzeigen der Datenbeschreibung
```
## 2024: Flixbus
```{r, eval = FALSE}
library(fhswf) # Laden des fhswf-Packages
View(flixbus) # Anzeigen der Daten
flixbus # Anzeigen der Daten auf der Konsole
?flixbus # Anzeigen der Datenbeschreibung
```
## 2024: Lego
```{r, eval = FALSE}
library(fhswf) # Laden des fhswf-Packages
View(lego) # Anzeigen der Daten
lego # Anzeigen der Daten auf der Konsole
?lego # Anzeigen der Datenbeschreibung
```
## 2023: Bike Sharing
```{r, eval = FALSE}
library(fhswf) # Laden des fhswf-Packages
View(bikesharing) # Anzeigen der Daten
bikesharing # Anzeigen der Daten auf der Konsole
?bikesharing # Anzeigen der Datenbeschreibung
```
### Beispiel {-}
```{r}
# Deskriptive Statistik der benutzten Fahrräder pro Tag
summary(bikesharing$cnt)
```
## 2023: Yacht Prices
```{r, eval = FALSE}
library(fhswf) # Laden des fhswf-Packages
View(boatprices) # Anzeigen der Daten
boatprices # Anzeigen der Daten auf der Konsole
?boatprices # Anzeigen der Datenbeschreibung
```
### Beispiel {-}
```{r}
# Deskriptive Statistik des Preises der gelisteten Boote in Euro
summary(boatprices$price)
```
## 2023: Insurance
```{r, eval = FALSE}
library(fhswf) # Laden des fhswf-Packages
View(insurance) # Anzeigen der Daten
insurance # Anzeigen der Daten auf der Konsole
?insurance # Anzeigen der Datenbeschreibung
```
### Beispiel {-}
```{r}
# Deskriptive Statistik der jährlichen Versicherungskosten in US Dollar
summary(insurance$charges)
```
## 2022: NYC Airbnb
```{r, eval = FALSE}
library(fhswf) # Laden des fhswf-Packages
View(nycairbnb) # Anzeigen der Daten
nycairbnb # Anzeigen der Daten auf der Konsole
?nycairbnb # Anzeigen der Datenbeschreibung
```
### Beispiel {-}
```{r}
summary(nycairbnb$price) # Deskriptive Statistik des Preises pro Übernachtung
```
## 2022: Autopreise
```{r, eval = FALSE}
library(fhswf) # Laden des fhswf-Packages
View(carprices) # Anzeigen der Daten
carprices # Anzeigen der Daten auf der Konsole
?carprices # Anzeigen der Datenbeschreibung
```
### Beispiel {-}
```{r}
summary(carprices$price) # Deskriptive Statistik des Kaufpreises
```
## 2022: WHO Data
```{r, eval = FALSE}
library(fhswf) # Laden des fhswf-Packages
View(whodata) # Anzeigen der Daten
whodata # Anzeigen der Daten auf der Konsole
?whodata # Anzeigen der Datenbeschreibung
```
### Beispiel {-}
```{r}
# Human Development Index von Deutschland im Jahr 2015
whodata[whodata$country_code == "DEU" & whodata$year == 2015, ]$hdi
# Mittlerer Human Development Index über alle (verfügbaren) Länder in 2017
median(whodata[whodata$year == 2017, ]$hdi, na.rm = TRUE)
```
## 2021: Taxi Trips
### Vorbereitungen {-}
```{r, eval = FALSE, code=xfun::read_utf8("data/2021_fhswf_stat_taxi.R")}
```
### Datenbeschreibung {-}
**Variablen**
- `id`: a unique identifier for each trip
- `vendor_id`: a code indicating the provider associated with the trip record
- `pickup_datetime`: date and time when the meter was engaged
- `dropoff_datetime`: date and time when the meter was disengaged
- `passenger_count`: the number of passengers in the vehicle (driver entered value)
- `pickup_longitude`: the longitude where the meter was engaged
- `pickup_latitude`: the latitude where the meter was engaged
- `dropoff_longitude`: the longitude where the meter was disengaged
- `dropoff_latitude`: the latitude where the meter was disengaged
- `store_and_fwd_flag`: This flag indicates whether the trip record was held in vehicle memory before sending to the vendor because the vehicle did not have a connection to the server - Y=store and forward; N=not a store and forward trip
- `trip_duration`: duration of the trip in seconds
**Ergänzte Variablen**
- `osrm_distance`: the travel distance by car in kilometers as calculated by the Open Streetmap Routing Machine
- `osrm_duration`: the estimated duration for travelling the route by car in minutes as estimated by the Open Streetmap Routing Machine
- `geodesic_distance`: the geodesic distance in meters between the pickup and dropoff coordinates calculated using the method of Karney (2013)
- `weekday:` the day of the week when the trip was started
### Daten laden {-}
```{r}
# load the data
x <- read.csv("https://bchwtz.github.io/bchwtz-stat/data/2021_fhswf_stat_taxi.csv")
```
### Tips & Tricks {-}
```{r}
# working with dates and times
x$pickup_datetime <- as.POSIXlt(x$pickup_datetime, tz="America/New_York")
x$pickup_datetime[1]
weekdays(x$pickup_datetime[1])
months(x$pickup_datetime[1])
```
### Quellen {-}
- <https://www.kaggle.com/c/nyc-taxi-trip-duration/>
- <https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page>
## 2021: Hauspreise
### Vorbereitungen {-}
```{r, eval = FALSE, code=xfun::read_utf8("data/2021_fhswf_stat_housing.R")}
```
### Datenbeschreibung {-}
- `id`: a unique identifier for each offer
- `price`: the requested price in Euro to buy the building
- `type`: the type of the offered building
- `living_space`: the size of the usable living space in the building in square meters
- `lot_size`: the size of the associated lot in square meters
- `additional_area`: the size of the additionally available area in square meters that is not qualified living space due to legal reasons
- `rooms`: the total number of rooms in the building
- `bedrooms`: the number of bedrooms in the building
- `bathrooms`: the number of bathrooms in the building
- `floors`: number of storys in the building
- `year_construction`: the year in which the building was first constructed
- `year_modernization`: the year in which the building was lastly renovated
- `facility_quality`: an indication of quality of the installed fixtures, facilities and if applicable furniture
- `condition`: the general condition of the building and facilities
- `heating`: the primary technology for heating the building
- `energy_source`: the primary source of energy for heating and warm water
- `energy_certificate`: an indication wheter and energy consumption certificate is required and/or available
- `energy_certificate_type`: the type of the available energy certification
- `energy_consumption`: the required amount of energy in $kWh/m^2$ per year to heat the building
- `energy_efficiency_class`: an indication of the quality of the thermal insulation of the building according to the german EnEV, ranging from A+ (best) to H (worst)
- `state`: the federal state of germany in which the building is located
- `district`: the respective district of the federal stat in which the building is located
- `city`: the name of the city to whom the building is allocated
- `parking_lot`: the amount of registered parking lots that belong to the building
- `parking_lot_type`: the type of the available parking lots
### Daten laden {-}
```{r, eval=FALSE}
# load the data
x <- read.csv("https://bchwtz.github.io/bchwtz-stat/data/2021_fhswf_stat_housing.csv")
```
### Quellen {-}
- <https://www.kaggle.com/scriptsultan/german-house-prices>
## 2021: Human Ressources
### Vorbereitungen {-}
```{r, eval = FALSE, code=xfun::read_utf8("data/2021_fhswf_stat_hr.R")}
```
### Datenbeschreibung {-}
- `EmployeeName`: Employee's full name d
- `EmpID`: Employee ID is unique to each employee\
- `MarriedID`: Is the person married (1 or 0 for yes or no)\
- `MaritalStatusID`: Marital status code that matches the text field MaritalDesc
- `EmpStatusID`: Employment status code that matches text field EmploymentStatus
- `DeptID Department`: ID code that matches the department the employee works in\
- `PerfScoreID`: Performance Score code that matches the employee's most recent performance score\
- `FromDiversityJobFairID`: Was the employee sourced from the Diversity job fair? 1 or 0 for yes or no\
- `PayRate`: The person's hourly pay rate. All salaries are converted to hourly pay rate
- `Termd`: Has this employee been terminated - 1 or 0\
- `PositionID`: An integer indicating the person's position
- `Position`: The text name/title of the position the person has\
- `State`: The state that the person lives in\
- `Zip`: The zip code for the employee\
- `DOB`: Date of Birth for the employee\
- `Sex`: Sex - M or F\
- `MaritalDesc`: The marital status of the person (divorced, single, widowed, separated, etc)\
- `CitizenDesc`: Label for whether the person is a Citizen or Eligible NonCitizen\
- `HispanicLatino`: Yes or No field for whether the employee is Hispanic/Latino
- `RaceDesc`: Description/text of the race the person identifies with
- `DateofHire`: Date the person was hired\
- `DateofTermination`: Date the person was terminated, only populated if, in fact, Termd = 1\
- `TermReason`: A text reason / description for why the person was terminated\
- `EmploymentStatus`: A description/category of the person's employment status. Anyone currently working full time = Active\
- `Department`: Name of the department that the person works in
- `ManagerName`: The name of the person's immediate manager\
- `ManagerID`: A unique identifier for each manager
- `RecruitmentSource`: The name of the recruitment source where the employee was recruited from\
- `PerformanceScore`: Performance Score text/category (Fully Meets, Partially Meets, PIP, Exceeds)\
- `EngagementSurvey`: Results from the last engagement survey, managed by our external partner\
- `EmpSatisfaction`: A basic satisfaction score between 1 and 5, as reported on a recent employee satisfaction survey
- `SpecialProjectsCount`: The number of special projects that the employee worked on during the last 6 months
- `LastPerformanceReviewDate`: The most recent date of the person's last performance review\
- `DaysLateLast30`: The number of times that the employee was late to work during the last 30 days\
- `Absences`: The number of times the employee was absent from work
### Daten laden {-}
```{r,}
# load the data
x <- read.csv("https://bchwtz.github.io/bchwtz-stat/data/2021_fhswf_stat_hr.csv")
```
### Tips & Tricks {-}
```{r}
# working with dates and times
x$Date_Hiring <- as.Date(x$DateofHire,format='%m/%d/%Y')
x$Date_Termination <- as.Date(x$DateofTermination,format='%m/%d/%Y')
# example difference between two timepoints
difftime(x$Date_Termination[2],x$Date_Hiring[2], units = "days")
```
### Quellen {-}
- <https://www.kaggle.com/rhuebner/human-resources-data-set>
- <https://rpubs.com/rhuebner/hr_codebook_v14>