Seite 2 von 2

Re: Öffnungszeiten nach Wochentag auslesen

Verfasst: Mo Sep 28, 2020 11:04 pm
von EDi
Das parsen könnte so aussehen:

Code: Alles auswählen

# Packages ----------------------------------------------------------------
library(jsonlite)
library(purrr)
library(dplyr)
library(tidyr)

# read --------------------------------------------------------------------

df <- read.table(file.choose(), header = TRUE, sep = ',')



# parse json -------------------------------------------------------------

df <- df %>%
  mutate(openingtimes = map(openingtimes_json, parse_json))


# parse openingtimes ---------------------------------------------------------

parse_openningtime <- function(openingtime) {
  data.frame(app_days = openingtime$applicable_days,
             startp = openingtime$periods[[1]]$startp,
             end_p = openingtime$periods[[1]]$endp)
}

parse_openningtimes <- function(openningtimes){
  map_df(openingtimes[[1]], parse_openningtime)
}

df <- df %>%
  mutate(parsed_openingtimes = map(openingtimes, parse_openningtimes))


# into a nice data.frame --------------------------------------------------

df %>%
  unnest(parsed_openingtimes)
versuch mal zu verstehen was da so geschieht (ist nämlich ne Menge).
Das ganze geht auch ohne dplyr, purrr & unnest - aber ich persönlich finde es angenehmer die Daten zusammenzuhalten (in list-columns).

map kann z.B. durch lapply() ersetzt werden.

Re: Öffnungszeiten nach Wochentag auslesen

Verfasst: Mi Sep 30, 2020 7:37 am
von Bugs
versuch mal zu verstehen was da so geschieht (ist nämlich ne Menge).
Das ganze geht auch ohne dplyr, purrr & unnest - aber ich persönlich finde es angenehmer die Daten zusammenzuhalten (in list-columns).

Hallo EDi,

ich habe mir das mal genauer angeschaut und denke ich verstehe die Vorgehensweise weitestgehend.
Ich habe die Befehle außerdem mal auf meinen Datensatz angewendet und es hat tatsächlich so funktioniert, wie ich mir das vorgestellt hatte :D
Ich denke damit kann ich erst einmal weiter arbeiten. Vielen Dank. Das hat mir sehr geholfen. :D

LG

Re: Öffnungszeiten nach Wochentag auslesen

Verfasst: Mi Sep 30, 2020 8:30 am
von Athomas
Bugs hat geschrieben: Mo Sep 28, 2020 12:35 pm Es handelt sich dabei um diesen Datensatz, den ich als CSV in R eingelesen habe:

https://dev.azure.com/tankerkoenig/_git ... ations.csv
Das ist die Datei, die Du in EDis Programm mit

Code: Alles auswählen

df <- read.table(file.choose(), header = TRUE, sep = ',')
eingelesen hast?

Re: Öffnungszeiten nach Wochentag auslesen

Verfasst: Mo Dez 14, 2020 5:25 pm
von Bugs
EDi hat geschrieben: Mo Sep 28, 2020 11:04 pm Das parsen könnte so aussehen:

Code: Alles auswählen

# Packages ----------------------------------------------------------------
library(jsonlite)
library(purrr)
library(dplyr)
library(tidyr)

# read --------------------------------------------------------------------

df <- read.table(file.choose(), header = TRUE, sep = ',')



# parse json -------------------------------------------------------------

df <- df %>%
  mutate(openingtimes = map(openingtimes_json, parse_json))


# parse openingtimes ---------------------------------------------------------

parse_openningtime <- function(openingtime) {
  data.frame(app_days = openingtime$applicable_days,
             startp = openingtime$periods[[1]]$startp,
             end_p = openingtime$periods[[1]]$endp)
}

parse_openningtimes <- function(openningtimes){
  map_df(openingtimes[[1]], parse_openningtime)
}

df <- df %>%
  mutate(parsed_openingtimes = map(openingtimes, parse_openningtimes))


# into a nice data.frame --------------------------------------------------

df %>%
  unnest(parsed_openingtimes)
versuch mal zu verstehen was da so geschieht (ist nämlich ne Menge).
Das ganze geht auch ohne dplyr, purrr & unnest - aber ich persönlich finde es angenehmer die Daten zusammenzuhalten (in list-columns).

map kann z.B. durch lapply() ersetzt werden.




Hallo EDi,

ist schon eine Weile her, als Du mir mit dieser Antwort extrem weitergeholfen hast.
Wie damals bereits gesagt, kann ich die Vorgehensweise grob nachvollziehen, allerdings muss ich nun genau erläutern, was die einzelnen Befehle bewirken.
Ich weiß nicht wieviel Aufwand es für Dich ist, sich wieder in das Thema rein zu lesen, aber über eine kleine Erklärung wäre ich sehr dankbar.

Danke im Voraus!

LG

Re: Öffnungszeiten nach Wochentag auslesen

Verfasst: Di Dez 15, 2020 4:20 pm
von EDi
Wo hängst denn? Geh mal Zeile für Zeile durch, schau dir Input & Output an, zerlege die Zeilen in Teile, führe diese einzeln aus.

Das bringt dir mehr, wie wenn ich dir erkläre was da passiert...

Wenn du _genau_ erläutern willst was passiert, musst du dir unter Anderem den Quellcode von jsonlite::parse_json und den damit verbundenen Code analysieren. Gute Übung um Quellecode zu lesen! - Mir reicht's zu wissen, dass es ein json in ein R-Objekt umwandelt...

Re: Öffnungszeiten nach Wochentag auslesen

Verfasst: Mo Dez 21, 2020 1:20 pm
von EDi
Wo hängst denn?
Scheint ja nicht so wichtig zu sein... Bin hier raus...