Hi Andreas, Andreas Leha <andreas.l...@med.uni-goettingen.de> writes:
> Hi Loris, > > "Loris Bennett" <loris.benn...@fu-berlin.de> writes: > >> Hi, >> >> Is it possible to pass a variable to a source block such that the >> variable can be used as part of the name of the output file? >> >> Currently I have >> >> #+HEADER: :var data=timelimit-elapsed-data year=2011 :colnames yes >> #+HEADER: :session *r* :file (org-babel-temp-file "time-elapsed-" ".pdf") >> >> which gets me a different name for each value of 'year', but ideally I >> would like the files to be called >> >> time-elapsed-2011.pdf >> time-elapsed-2012.pdf >> time-elapsed-2013.pdf >> >> etc. >> >> Can this be done? > > > Maybe not what you are looking for, but you could handle the assembly of > the filename within your code block. > > Something like: > > #+HEADER: :var year=2011 :session *r* :results file > #+begin_src R > filename <- paste0("time-elapsed-", year, ".pdf") > > pdf(filename) > ## your code > dev.off() > > filename > #+end_src > > Regards, > Andreas Thanks, that is in fact exactly what I need. Looking at the documentation again, I see that it says: "Some languages including R, gnuplot, dot, and ditaa provide special handling of the :file header argument automatically wrapping the code block body in the boilerplate code required to save output to the specified file. This is often useful for saving graphical output of a code block to the specified file." I just didn't understand this at first. Maybe the following sentence should/could be added: "... the specified file. This means that the argument of the :file header can be omitted and the file name can be generated within the source block." Cheers, Loris -- This signature is currently under construction.