在 R 中自定义 URL



我是印度的日内交易者。我正在使用R进行研究。我想下载不同股票的收盘(EOD(股票价格。我正在使用Quandl和quantmod,但对它们不满意(它们适用于历史数据,但不适用于EOD报价(。经过大量研究,我发现NSE(印度国家证券交易所(的EOD可以在所谓的"bhav副本"中找到,该副本可以每天从其网站上下载。4 月 30 日的网址是:

https://www.nseindia.com/content/historical/EQUITIES/2018/APR/cm30APR2018bhav.csv.zip

我有两个问题:

1(如果我在谷歌浏览器的地址框中输入并执行,它会抛出一个弹出窗口,询问将csv文件存储在哪里。如何在 R 中自动执行此操作?如果我只是输入 URL 作为read.csv的参数,就足够了吗?

2(bhav副本每天更新。我想用 R 编写一个函数,每天自动下载。但网址每天都在变化(上述网址仅适用于2018年4月30日(。该函数将当前日期作为参数。如何创建到该特定日期的日期和 URL 的一对一映射?换句话说,日期 dt 的 URL 是:

https://www.nseindia.com/content/historical/EQUITIES/2018/APR/cmdtAPR2018bhav.csv.zip

R 函数 f(dt( 应创建该特定日期的 URL 并下载 csv 文件。

非常感谢您的时间和精力...

download.file(url, destfile)应该是从 R 中的 URL 下载数据所需的内容。然后你可以使用read.csv.根据您提供的 URL 判断,您可能需要在处理之前使用unzip()

如果您愿意,可以使用data.table库中的fread直接传递 url,但如果它是一个 zip 文件,那么第一个选项可能更适合您。

至于 URL 和处理日期,lubridate库将方便解析日期。

nser解决了你的问题。

要下载和阅读今天的bhavcopy,请使用bhavtoday

library(nser)
bhavtoday

下载并阅读股权部分的历史副本

bhav("30042018")

F&O部分的bhavcopy副本

fobhav("30042018")

您也可以使用RSelenium使用功能下载bhavcopy zip文件bhavs

包链接 https://cloud.r-project.org/web/packages/nser/index.html

最新更新