[R] is there any method to defer the execution of code in r?
akshay kulkarni
@k@h@y_e4 @ending from hotm@il@com
Sun May 13 09:59:33 CEST 2018
dear members,
I have created the following function to read a csv file from a given URL:
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 <- paste("https://www.nseindia.com/content/historical/EQUITIES/",ty,"/",tmu,"/cm",td,tmu,ty,"bhav.csv.zip", sep = "")
file.string <- paste("C:/Users/user/AppData/Local/Temp/cm",td,tmu,ty,"bhav.csv")
download.file(dynamic.URL, "C:/Users/user/Desktop/bhav.csv.zip")
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...
AKSHAY M KULKARNI
[[alternative HTML version deleted]]
More information about the R-help
mailing list