Chris Evans
2021-Sep-19 17:49 UTC
[R] Cacheing of functions from libraries other than the base in Rmarkdown
[Damn: now I'm forgetting that r-help has reply-to the individual respondent, sorry for duplicate Email Charles but I'm sure this should be in the archives.] Excellent: I'm sure that's it. I hadn't noticed that I'd loaded libraries in a cached code block. I thought I'd learned not to do that: can't believe I didn't check that. Thanks, another hole in a foot: (re)-read the pertinent manual before assuming something is broken Christopher! Very best all, C ----- Original Message -----> From: "Berry, Charles" <ccberry at health.ucsd.edu> > To: "Chris Evans" <chrishold at psyctc.org> > Cc: "R-help" <R-help at r-project.org> > Sent: Sunday, 19 September, 2021 19:28:49 > Subject: Re: Cacheing of functions from libraries other than the base in Rmarkdown> Chris, > > >> On Sep 18, 2021, at 12:26 PM, Chris Evans <chrishold at psyctc.org> wrote: >> >> This question may belong somewhere else, if so, please signpost me and accept >> apologies. >> >> What is happening is that I have a large (for me, > 3k lines) Rmarkdown file >> with many R code blocks (no other code or >> engine is used) working on some large datasets. I have some inline r like >> >> There are `r n_distinct(tibDat$ID)` participants and `r nrow(tibDat)` rows of >> data. >> >> What I am finding is that even if one knit has worked fine and I change >> something somewhere and knit again, the second >> knit is often failing with an error like >> >> n_distinct(tibDat$ID) : could not find function "n_distinct" >> >> This is not happening for functions like nrow() from base R and it mostly seems >> to happen to functions from the tidyverse. >> >> I think what is happening is some sort of cache corruption presumably caused by >> the memory demands. I am pretty sure I've >> seen this before but a long time ago and dealt with it by deleting the files and >> cache folders created by the knit. > > Caching things that depend on libraries is known to be tricky. > > Specifically, it is advised that "loading packages via library() in a cached > chunk and these packages will be used by uncached chunks" is something you > should not do. I suspect that this is the problem with your inline chunk. > > I have to reread things like: > > https://yihui.org/knitr/demo/cache/ > > and relevant parts of the manual to be sure I didn't mess something up and maybe > you should look at that and the manual yet another time. > > HTH, > > Chuck-- Chris Evans (he/him) <chris at psyctc.org> Visiting Professor, University of Sheffield and UDLA, Quito, Ecuador I do some consultation work for the University of Roehampton <chris.evans at roehampton.ac.uk> and other places but <chris at psyctc.org> remains my main Email address. I have a work web site at: https://www.psyctc.org/psyctc/ and a site I manage for CORE and CORE system trust at: http://www.coresystemtrust.org.uk/ I have "semigrated" to France, see: https://www.psyctc.org/pelerinage2016/semigrating-to-france/ https://www.psyctc.org/pelerinage2016/register-to-get-updates-from-pelerinage2016/ If you want an Emeeting, I am trying to keep them to Thursdays and my diary is at: https://www.psyctc.org/pelerinage2016/ceworkdiary/ Beware: French time, generally an hour ahead of UK. [[alternative HTML version deleted]]