转换.csv文件,以便使用';高频';R上的包裹

转换.csv文件,以便使用';高频';R上的包裹,r,csv,financial,R,Csv,Financial,创建的高频包可以将NYSE TAQ和WRDS TAQ中的.txt和.csv文件分别转换为xts对象的.RData文件,然后可以通过包轻松操作这些文件 问题是我对WRDS数据库的访问有限,该数据库只允许我从CRSP(证券价格研究中心)数据库下载股票数据,而不允许从TAQ(交易和报价)数据库下载股票数据。所以我的数据看起来像。可下载的文件包含2014-01-01至2014-01-05期间房地产投资信托基金指数的勾号数据。根据主要作者之一Kris Boudt的建议,我手动更改了标题PRICE的股票代码

创建的
高频
包可以将NYSE TAQ和WRDS TAQ中的
.txt
.csv
文件分别转换为xts对象的
.RData
文件,然后可以通过包轻松操作这些文件

问题是我对WRDS数据库的访问有限,该数据库只允许我从CRSP(证券价格研究中心)数据库下载股票数据,而不允许从TAQ(交易和报价)数据库下载股票数据。所以我的数据看起来像。可下载的文件包含2014-01-01至2014-01-05期间房地产投资信托基金指数的勾号数据。根据主要作者之一Kris Boudt的建议,我手动更改了标题PRICE的股票代码标题

我使用的代码如下所示:

 from="2014-03-01"
 to="2014-04-31"
 datasource="C:/Users/aris/Desktop/raw_data"
 datadestination="C:/Users/aris/Desktop/xts_data"
 convert(from = from,to=to,datasource = datasource,datadestination = datadestination,
 trades=TRUE,quotes=FALSE,ticker="REIT",dir=FALSE,extension="csv",header = TRUE,
 tradecolnames = NULL, quotecolnames = NULL,format = "%Y%m%d %H:%M:%S",onefile=TRUE)
我怀疑问题出在
format=“%Y%m%d%H:%m:%S”
行,与
.csv
文件一样,日期和时间是逗号分隔的。我试图在
%d和%H
之间加一个逗号,就像这样
格式=“%Y%m%d,%H:%m:%S”
但什么都没有

错误为

 Error in `$<-.data.frame`(`*tmp*`, "COND", value = numeric(0)) :   
 replacement has 0 rows, data has 1048575

highfrequency::convert
函数调用
highfrequency:::makeXtsTrades
时,`$出现错误,该函数在文本文件中需要以下列:日期、时间、价格、大小、符号、EX、COND、CORR、G127

我在你的文本文件中添加了空列,没有发现你问题中的错误。编辑的文本文件如下所示:

DATE,TIME,PRICE,SIZE,SYMBOL,EX,COND,CORR,G127
20140102,9:30:00,1123.77,,,,,,
20140102,9:30:01,1122.81,,,,,,
20140102,9:30:02,1122.77,,,,,,
不过我又犯了一个错误

Error in gzfile(file, "wb") : cannot open the connection
In addition: Warning message:
In gzfile(file, "wb") :
  cannot open compressed file '/home/josh/Desktop/z_xts/2014-01-02/REIT_trades.RData', probable reason 'No such file or directory'

因此,
convert
函数似乎希望在运行之前所有每日输出目录都存在。该函数在我创建这些目录后运行并创建输出。

多亏了Joshua Ulrich,我获得了一些额外的直觉并解决了问题。实际上,不需要操作.csv文件本身并添加额外的列。通过设置
tradecolnames=c(“日期”、“时间”、“价格”)
让机器知道文件中包含哪些列,而不是设置
tradecolnames=NULL
。通过设置
dir=TRUE
,解决了不存在目录的问题。最后的代码如下所示:

from="2014-03-01" 
to="2014-04-31"
datasource="C:/Users/aris/Desktop/raw_data"
datadestination="C:/Users/aris/Desktop/xts_data" 
convert(from,to,datasource,datadestination,trades=TRUE,quotes=FALSE,ticker="REIT",dir=TRUE,extension="csv",header= TRUE,tradecolnames=c("DATE","TIME","PRICE"),format = "%Y%m%d %H:%M:%S",onefile=TRUE)

你能把你的文件上传到一个更友好的网站吗?我不能下载。它只有1.5MB,如果你把它拉上拉链,它的大小只有这个大小的10%。非常感谢你的快速回复。刚刚重新上传了文件@joshuaulrich非常感谢您的时间。非常好的建议。