ResearchMethods-ZHAW / HS23

Unterlagen Research Methods für das Herbstsemester 2023
https://researchmethods-zhaw.github.io/HS23/
0 stars 0 forks source link

case_when statt verschachtelte if_else #19

Closed ratnanil closed 1 year ago

ratnanil commented 1 year ago

würde ich eher mit einem case_when() lösen

https://github.com/ResearchMethods-ZHAW/HS23/blob/5b9d7ae5324c852604123666a6bbf46b914f26b0/fallstudie_s/7_Multivariat_Loesung.qmd#L234-L244

ratnanil commented 1 year ago

siehe #18

ratnanil commented 1 year ago

see #34

hochad commented 1 year ago

@ratnanil, folgender Abschnitt in script 5_Datenverarbeitung funktioniert bei mir nicht:

depo <- depo|> mutate(Tageszeit = case_when( Datetime >= nightEnd & Datetime <= goldenHourEnd ~ "Morgen", Datetime > goldenHourEnd & Datetime < goldenHour ~ "Tag", Datetime >= goldenHour & Datetime <= night ~ "Abend", .default = "Nacht")) |> mutate(Tageszeit = factor(Tageszeit, levels = c("Morgen", "Tag", "Abend", "Nacht"),ordered = TRUE))

Fehlermeldung:

Error in `mutate()`:
! Problem while computing `Tageszeit = case_when(...)`.
Caused by error in `case_when()`:
! Case 4 (`Datetime >= nightEnd & Datetime <= goldenHourEnd ~ "Morgen"`) must be a two-sided formula, not a character vector.
Run `rlang::last_error()` to see where the error occurred

Ich vermute das Problem ist irgendwo bei .default = "Nacht"

ratnanil commented 1 year ago

Welche dplyr version hast du? Älter als 1.1.1?

ich vermute es hängt mit dem .default Argument zusammen (https://dplyr.tidyverse.org/news/index.html?q=.default#dplyr-110):

(case_when()) Has a new .default argument that is intended to replace usage of TRUE ~ default_value as a more explicit and readable way to specify a default value. In the future, we will deprecate the unsafe recycling of the LHS inputs that allows TRUE ~to work, so we encourage you to switch to using .default.

hochad commented 1 year ago

ja, version 1.0.9. Ich habe ein Update durchgeführt und nun läuft es ohne probleme.