[R] is there any method to defer the execution of code in r?

Jeff Newmiller jdnewm|| @end|ng |rom dcn@d@v|@@c@@u@
Sun May 13 15:07:44 CEST 2018

I am puzzled by the use of the term "cross-posted" here... I don't see the OP or their question or any similar words from the question involved the the given link, though that link seems worth bringing it to the OP's attention.

But the function given in the question seems to have other problems:

A) The download.file function call puts its result in a different place than the read.csv reads data from. Unless the OP is manually moving files around with the  file browser in the background I don't see how this would ever work.

B) The file paths refer to C:/Users/user ... it would be highly unusual for there to be such a directory on any machine, so I am wondering how close any of this code is to what the OP actually did.

C) Reading the help page for download.file, it appears to behave like most functions in R... it does not return until the operation is complete. That is, the premise of the question seems flawed, and a truly reproducible example would be needed to convince me to go down the delay rabbit hole. The OP has been around this list long enough to know where to go to find out how to make a reproducible example.

On May 13, 2018 1:16:47 AM PDT, Rui Barradas <ruipbarradas using sapo.pt> wrote:
>This is cross posted from StackOverflow:
>Cross posting is discouraged in r-help.
>Rui Barradas
>On 5/13/2018 8:59 AM, akshay kulkarni wrote:
>> dear members,
>> I have created the following function to read a csv file from a given
>>      function(){
>>                              s <- 1;
>>                              #first get the bhav copy
>>                              today <- c();ty <- c();tm <- c();tmu <-
>c();td <- c();
>>                             # get the URL first
>>                              today <- Sys.Date()
>>                              ty <- format(today, format = "%Y")
>>                              tm <- format(today, format = "%b")
>>                              tmu <- toupper(tm)
>>                              td <- format(today, format = "%d")
>>             dynamic.URL <-
>sep = "")
>>             file.string <-
>>                              download.file(dynamic.URL,
>>                              bhav.copy <- read.csv(file.string)
>>                              return(bhav.copy)
>>      }
>> If I run the function, immediately it says that "file.string not
>found". But when I run it after some time(a few seconds), it executes
>normally. I think when `download.file` ecexecutes, it transfers control
>to `read.csv, `and it tries to load the file which is not yet properly
>saved. when I run it after some time, it tries to overwrite the
>existing file, which it cannot, and the `read.csv`properly loads the
>saved file.`
>> I want the function to execute the first time I run it. Is there any
>way or a function to defer the action of `read.csv`until the file is
>properly saved? Something like this:
>>      download.file(dynamic.URL, "C:/Users/user/Desktop/bhav.csv.zip")
>>                                  wait......
>>                                  bhav.copy <- read.csv(file.string)
>> Ignore the fact that the destfile in download.file is different from
>file.string; it is due to function of my system (windows 7).
>> Very many thanks for your time and effort...
>> 	[[alternative HTML version deleted]]
>> ______________________________________________
>> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
>> and provide commented, minimal, self-contained, reproducible code.
>R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>PLEASE do read the posting guide
>and provide commented, minimal, self-contained, reproducible code.

Sent from my phone. Please excuse my brevity.

More information about the R-help mailing list