[R] filename of current device
Andreas Leha
andreas.leha at med.uni-goettingen.de
Thu May 15 01:43:31 CEST 2014
Hi David,
David Winsemius <dwinsemius at comcast.net> writes:
> On May 14, 2014, at 3:44 PM, Andreas Leha wrote:
>
>> Hi David,
>>
>> Thank you for following up on that.
>>
>> David Winsemius <dwinsemius at comcast.net> writes:
>>
>>> On May 14, 2014, at 3:04 PM, Andreas Leha wrote:
>>>
>>>> Hi all,
>>>>
>>>> how do I find out about the filename, the currently open (let's say pdf)
>>>> device is writing to?
>>>>
>>>> If I find 'dev.cur()' returning 'pdf 3' when I expect 'nulldevice 1' I
>>>> would like to know, which file that pdf device is actually targeting.
>>>>
>>>> Any help for my poor organization is highly appreciated...
>>>>
>>>
>>> Have your read the help file for pdf()? The first argument is the default naming mechanism:
>>>
>>> file = ifelse(onefile, "Rplots.pdf", "Rplot%03d.pdf")
>>>
>>> So if you call pdf() then it will write to the working directory with a named constructed from those choices.
>>>
>>
>> Sorry for being unclear. I am aware of that. My use case is, that
>> apparently, I have called pdf("somefile.pdf") somewhen during a long
>> lasting R session.
>>
>> I tend to have separate R sessions open in parallel
>> for the project I am working on. So, I can easily have R session open
>> that run for weeks.
>>
>> So, when I return to an R session (when I got some additional data, I
>> was asking for, e.g.) after several days, I do not know what that call
>> was. And for several reasons, the actual call (pdf("somefile.pdf"))
>> might not even be visible in my R session.
>>
>> In that situation, I would like to know, which is the open file for the
>> current device.
>
> Well, if you acheived success with the pdf() call by executing
> dev.off() then you closed that device. The previous device does leave
> behind a footprint but not the entire name of hte file or the
> contents.
>
> ?dev.prev
>
>> old.dev <-dev.prev()
>> str(old.dev)
> Named int 5
> - attr(*, "names")= chr "pdf"
>
>
> If you had not changed working directory you may be able to then look
> at all of the pdf files. You can get information with file,info()
>
> ?file.info
>
>
Thanks for the follow-up. I take it, there is no 'easy' way in R to
achieve this.
The best solution (on unix systems) that I have come up with is this:
system(paste("lsof -p", Sys.getpid(), "| grep pdf"))
(which obviously works only before dev.off())
I was hoping for some more reliable way to achieve this, but it'll work
for me.
Thanks again,
Andreas
More information about the R-help
mailing list