Closed leymanan closed 1 year ago
Euh, kan je eens checken of het model in Afgeleidmodel[[1]]
zit en de metingen van je te plotten curve in Afgeleidmodel[[2]]
?
Oeps, SORRY!!! OPGELOST! In foute folder gekeken, wordt op andere plaats weggeschreven dan de eerste. Blijkbaar als TypeRapport = "Dynamisch", dan in de working dir, en als TypeRapport = "Statisch" in de directory waar het script staat.
En ja, had al gecheckt of het model in de list zat:
t <- Afgeleidmodel[[1]] %>% filter(DOMEIN_ID == "DomWVL09073" & BMS == "Cors. Den")
t2 <- Afgeleidmodel[[2]] %>% filter(DOMEIN_ID == "DomWVL09073" & BMS == "Cors. Den")
Euh, dat is vreemd dat het rapport anders opgeslagen wordt als het een ander TypeRapport is. Weet je dit zeker? Normaal zou het opgeslagen moeten worden in de working directory, tenzij je expliciet een path meegeeft bij argument PathWD
. Uiteraard kan de working directory variëren afhankelijk van je situatie:
Tools > Global options
, tab General
Tools > Global options
, tab R Markdown
ctrl
-alt
-delete
is dit bij mij default de My documents
folderAls bij het runnen van eenzelfde script in eenzelfde situatie je rapport bij Dynamisch en Statisch in een verschillende folder opgeslagen wordt, laat het dan a.u.b. weten, dan kijk ik na wat het probleem zou kunnen zijn. Maar ik zie in mijn script geen enkele reden waarom dit het geval zou kunnen zijn, omdat eigenlijk telkens hetzelfde basisrapport gebouwd wordt met iets andere grafieken.
heel raar, nu is dat toch niet meer het geval, sorry!! (maar was paar dagen geleden zeker zo)
Geen probleem, belangrijkste is om te weten dat er niks met het package zelf scheelt. ;-)
Els, ik heb het nu weer voor, dat afgeleide modellen niet getoond worden, terwijl ik ze wel als extracurves
meegeef.
Ik heb al opnieuw opgestart, package opnieuw gebouwd, en daarnet pc terug opgestart, maar probleem blijft.
Hierna de gebruikte code
temp <- validatie.afgeleid(Basismodel, Afgeleidmodel, ExtraCurvesRapport = ExtraCurvesAfgeleid, TypeRapport = "Dynamisch")
Ter controle om zeker te zijn dat het model in Afgeleidmodel
zit:
> ExtraCurvesAfgeleid %>% pull(DOMEIN_ID)
[1] "DomWVL09073"
> ExtraCurvesAfgeleid %>% pull(BMS)
[1] "Beuk"
> t <- Afgeleidmodel[[1]] %>% filter(DOMEIN_ID == "DomWVL09073" & BMS == "Beuk")
> t2 <- Afgeleidmodel[[2]] %>% filter(DOMEIN_ID == "DomWVL09073" & BMS == "Beuk")
t en t2 bevat de gevraagde gegevens
Ik zal je een mailtje sturen met in bijlage Rdata, zodat jij het ook eens kan proberen, OK?
Vreemd: ik opende je doorgestuurde gegevens, runde je code van hierboven, opende het gegenereerde validatierapport en zag daarin als 4de grafiek deze grafiek staan:
heel raar, gisteren lukte het wel nog. Deze keer ben ik echt wel 100% zeker dat ik in de juiste file aan 't kijken ben. Misschien moet k die eerst eens verwijderen, dat heb ik nog niet geprobeerd. Maar dat gaf tot nu toe nog nooit problemen, dus vrees dat het daaraan niet ligt.
Ik zal maandag nog eens proberen, misschien als mijn laptop wat rust gekregen heeft??
Sowieso is het wel belangrijk dat die file niet open staat als je het rapport bouwt, want dan kan hij die niet overschrijven.
ik heb nu eens gewoon zelfde gedaan als jij: nieuw script, Rdata ingeladen en code gerund, en lukt niet. Ik ga nog eens hetzelfde doen, maar vanuit een R-script ipv Rmd ... wie weet ...
Tja, ik weet het ook echt niet. Ik heb recent (= de laatste maanden) niks aangepast aan die functionaliteit, voor zover ik me kan herinneren, dus een iets oudere versie van het package zou niks mogen uitmaken.
Ah, kan je eens kijken naar het tijdstip dat je rapport gebouwd is?
Ah ja, zei je laatst niet dat je rapport bij een Rmd op een andere plaats opgeslagen wordt? Kijk je in de folder die vermeldt wordt als je het script gerund hebt?
Ah ja, zei je laatst niet dat je rapport bij een Rmd op een andere plaats opgeslagen wordt? Kijk je in de folder die vermeldt wordt als je het script gerund hebt?
jaja, die fout maak ik geen 2x!
Ah, kan je eens kijken naar het tijdstip dat je rapport gebouwd is?
daar kijk ik elke keer naar, tijdstip klopt altijd met moment waarop ik hert aangemaakt heb. maar rapport blijft leeg.
Volledig leeg, of die ene grafiek niet?
nu heel sec volgend script gerund, na opnieuw opstarten R-project
library(dplyr)
library(tidyr)
library(dhcurve)
load(here::here("src/main/issue69.RData"))
ExtraCurvesAfgeleid %>% pull(DOMEIN_ID)
# [1] "DomWVL09073"
ExtraCurvesAfgeleid %>% pull(BMS)
# [1] "Beuk"
t <- Afgeleidmodel[[1]] %>% filter(DOMEIN_ID == "DomWVL09073" & BMS == "Beuk")
t2 <- Afgeleidmodel[[2]] %>% filter(DOMEIN_ID == "DomWVL09073" & BMS == "Beuk")
temp <- validatie.afgeleid(Basismodel, Afgeleidmodel, ExtraCurvesRapport = ExtraCurvesAfgeleid, TypeRapport = "Dynamisch")
Dan krijg ik melding "Het rapport is opgeslagen in de working directory: C:/05_DHcurves/02_aanmaak_dhcurves_ANB", en dan is 't OK
idem dito in een nieuwe Rmd
Is precies of ik ergens packages ingeladen heb of instellingen heb in mijn scripts, die gedurende mijn sessie behouden blijven, maar erna weer gereset worden.
Nu ga ik nog eens proberen vanuit mijn eigen scripts ...
ik start elk script met de volgende setup-chunck:
knitr::opts_chunk$set(
eval = FALSE, # bij het knitten wordt enkel tekst en code gerund, geen output
# GEVOLG: ook alle chunks runnen lukt dan niet
message = FALSE,
warning = FALSE
)
library(RODBC)
library(readr)
library(dplyr)
library(tidyr)
library(dhcurve)
library(readxl)
library(lintr)
library(here)
library(sf)
library(rgbif)
library(tidyverse)
library(xtable)
source(file = here::here("src/setup.R"))
als ik deze chunck eerst run, dan krijg ik niet meer de gewenste html (is leeg)
in de file setup.R
staan enkel paths ingesteld en het aanroepen van een file met enkele functies:
# hulpfuncties
source(file = here::here("src/hulpfuncties.R"))
db_metingen <- "DiamHoogteMetingen.accdb" # !! kan niet gewijzigd worden, want functies package gebruiken deze naam
dbpath <- "C:/05_DHcurves/03_meetgegevens/"
hulpdbpath <- "C:/05_DHcurves/02_aanmaak_dhcurves_ANB/output/"
GISpath <- "C:/Users/anja_leyman/OneDrive - Vlaamse overheid - Office 365/GIS"
path_to_GIS <- "C:/Users/anja_leyman/OneDrive - Vlaamse overheid - Office 365/GIS"
BHI_laatste_versie <- "BHI_20220624"
Waarom die eval = FALSE
? Dit zorgt ervoor dat de code in de chunks niet gerund wordt.
Verdoeme!!!
Ik dacht dat dat enkel effect had als ik knit: ik zet dat op FALSE, om zo mijn tekst te krijgen van mijn script, want knitten mét resultaten met die achterliggende html-rapporten lukt niet, ik krijg dan steeds meldingen van chunks met zelfde naam ...
Maar anderzijds: ook als ik run vanuit een R-script (en niet een Rmd) lukt het niet meer.
En ik doe dat vaak, er staat dan eval = FALSE in mijn chunck, maar ik kan die code wel laten runnen (enkel niet als ik knit)
Ben je zeker dat dit nog lukt als je die eerste chunk ook gerund hebt? Of lukt het als je enkel bepaalde chunks runt?
Als ik nu vanuit een nieuw script (R of Rmd) de simpele code run, lukt het niet meer. Ik zou weer opnieuw moeten opstarten en niks van packages inladen of van chunks_set ...
even weg om kids ....
ik run nu enkel volgende code in een R-script (geen Rmd) en het lukt niet meer
rm(list=ls())
library(dplyr)
library(tidyr)
library(dhcurve)
load(here::here("src/main/issue69.RData"))
ExtraCurvesAfgeleid %>% pull(DOMEIN_ID)
# [1] "DomWVL09073"
ExtraCurvesAfgeleid %>% pull(BMS)
# [1] "Beuk"
t <- Afgeleidmodel[[1]] %>% filter(DOMEIN_ID == "DomWVL09073" & BMS == "Beuk")
t2 <- Afgeleidmodel[[2]] %>% filter(DOMEIN_ID == "DomWVL09073" & BMS == "Beuk")
temp <- validatie.afgeleid(Basismodel, Afgeleidmodel, ExtraCurvesRapport = ExtraCurvesAfgeleid, TypeRapport = "Dynamisch")
ik zal nog eens R afsluiten en openen, en enkel de packages inladen die ik standaard inlaad en kijken of er dan al iets niet meer lukt.
Om eens te testen: wat als je het deeltje knitr::opts_chunk$set(...)
niet runt, maar enkel de packages laadt en de rest van je script runt? Want op zich lijkt het wel logisch dat je geen chunks of code meer kan runnen als je eerst code runt die de optie voor die chunks zet op eval=FALSE
.
Sowieso heb ik er bij het ontwikkelen van dhcurves destijds geen rekening mee gehouden dat dit in een Rmd gerund zou worden. Ik zag het eerder als een R-script dat uitgevoerd zou worden, en waarvan het resultaat 'gebruikt' zou worden (en evt. via een Rmd gepubliceerd), maar niet de tussenstappen zelf.
Om eens te testen: wat als je het deeltje
knitr::opts_chunk$set(...)
niet runt, maar enkel de packages laadt en de rest van je script runt?
Dat was ik net mee bezig stukje voor beetje toevoegen: al geen effect van packages en van setup.R.
maar ligt inderdaad aan die eval = FALSE
bij setup chunck
, zelfs als ik die code run in een gewoon R-script (geen Rmd).
Ik had echt niet op dat dat zo een vergaand effect had. Ik dacht echt dat dat enkel effect had bij knitten.
Stom!
maar is niet rap omgekeerd, ik moet echt terugeval = TRUE
zetten, het gewoon niet vermelden zorgt ervoor dat het blijkbaar nog steeds in aangeroepen Rmd's zo gebruikt wordt.
knitr::opts_chunk$set(
eval = TRUE,
message = FALSE,
warning = FALSE
)
Bedankt om mee te zoeken!!! Blij dat het voor 't weekend opgelost is.
Of je moet het niet runnen (of R herstarten), of je moet inderdaad zorgen dat het terug ongedaan wordt.
Trouwens: ook bij het runnen van chunks: als je de code selecteert en runt, run je enkel wat je geselecteerd hebt. Maar als je de chunks 'volledig' runt met het driehoekje rechtsboven, dan run je de hele chunk, inclusief eventuele opties die vermeld zijn voor die chunk, dus ook als je boven die chunk eval = FALSE
hebt staan, zal die chunk niet gerund worden bij runnen met het driehoekje. Tja, programmeren is ook een beetje opletten wat je runt als je geen gewoon lineair R-script stap voor stap runt...
Trouwens: ook bij het runnen van chunks: als je de code selecteert en runt, run je enkel wat je geselecteerd hebt. Maar als je de chunks 'volledig' runt met het driehoekje rechtsboven, dan run je de hele chunk, inclusief eventuele opties die vermeld zijn voor die chunk, dus ook als je boven die chunk
eval = FALSE
hebt staan, zal die chunk niet gerund worden bij runnen met het driehoekje. Tja, programmeren is ook een beetje opletten wat je runt als je geen gewoon lineair R-script stap voor stap runt...
jaja, dat weet ik wel. Zover was ik al ;-)
ik krijg de extra grafieken niet (meer) te zien bij gebruik van de functie
validatie.afgeleid
met argumentExtraCurvesRapport = ExtraCurvesAfgeleid
De html wordt aangemaakt, maar bevat geen grafieken. Doel was om een basismodel te plotten als afgeleid model, door het optrekken van min_basis tot 56. DataframeExtraCurvesAfgeleid
wordt correct aangemaakt.