我是印度的日间交易员。我正在用R来做我的研究。我想下载不同股票的每日结束(EOD)股票价格。我使用的是Quandl和quantmod但对它们并不满意(它们可以用于历史数据,但不适用于EOD报价)。经过大量研究后,我发现NSE(印度国家证券交易所)的EOD可以在所谓的“bhav拷贝”中找到,可以从其网站上每天下载。第30个APRIL的URL是:
https://www.nseindia.com/content/historical/EQUITIES/2018/APR/cm30APR2018bhav.csv.zip
我有两个问题:
1)如果我在谷歌浏览器的地址栏中输入并执行,它会弹出一个弹出窗口,询问存储csv文件的位置。如何在R中自动执行此操作?如果我只输入网址作为read.csv
的参数,是否足够?
2)bhav副本每天更新。我想在R中编写一个函数,每天自动下载。但URL每天更改(上述URL仅适用于2018年4月30日)。该函数将当前日期作为参数。如何创建一个一个映射到该特定日期的日期和URL?换句话说,日期dt的URL是:
https://www.nseindia.com/content/historical/EQUITIES/2018/APR/cmdtAPR2018bhav.csv.zip
R函数f(dt)应该为该特定日期创建URL并下载csv文件。
非常感谢您的时间和精力......
答案 0 :(得分:0)
download.file(url, destfile)
应该是您从R中的URL下载数据所需的内容。然后您可以使用read.csv
。在处理之前,您可能需要使用unzip()
,根据您提供的URL进行判断。
如果您愿意,可以使用fread
库中的data.table
直接传递网址,但如果它是zip文件,则第一个选项可能更适合您。
对于网址和处理日期,lubridate
库将方便parsing dates。