提取具有不同日期和行号的股票价格

时间:2018-08-04 11:13:01

标签: r finance yahoo-finance

我有1200只具有不同时间段的股票作为数据框,需要对其进行略微的编辑。目前我的样子

Cannot read property 'comment_text' of undefined

即所使用的时间段不同,行数不同,因此无法将第n行划分为新的列

最后我想要的是一个数据框,内容类似于...

Date        Ticker Price
30/04/2006  ZZ     15.95
31/05/2006  ZZ     13.13
30/06/2006  ZZ     13.27
31/07/2006  ZZ     13.66
31/08/2015  ZYNE   28.11
30/09/2015  ZYNE   14.31
31/10/2015  ZYNE   12.59
30/06/2014  ZSPH   28.75 
31/07/2014  ZSPH    28.01
31/08/2014  ZSPH    40.29 
30/09/2014  ZSPH    39.23
31/10/2014  ZSPH    37.62
30/11/2014  ZSPH    42.96
31/12/2014  ZSPH    41.57
31/01/2015  ZSPH    44.93
28/02/2015  ZSPH    49.47

但时间长度和列使用的时间更长,因为从2004年到2018年,我有更多的负载要运行

从那里,我需要使用Fama French网站上的数据,使用所有股票的4因子模型来计算预期收益。我找到了有关如何操作的YouTube视频,但我发现我需要数据采用这种格式

谢谢!

(编辑:澄清我当前所拥有的是df,需要稍作修改)

1 个答案:

答案 0 :(得分:1)

这将创建问题中所示形式的动物园对象。如果将text = Lines替换为文件名或具有问题中显示的列的3列输入数据框,它也将起作用。如果需要数据框,请使用fortify.zoo(z)

library(zoo)
z <- read.zoo(text = Lines, header = TRUE, split = "Ticker", format = "%d/%m/%Y")

给予:

> z
            ZSPH  ZYNE    ZZ
2006-04-30    NA    NA 15.95
2006-05-31    NA    NA 13.13
2006-06-30    NA    NA 13.27
2006-07-31    NA    NA 13.66
2014-06-30 28.75    NA    NA
2014-07-31 28.01    NA    NA
2014-08-31 40.29    NA    NA
2014-09-30 39.23    NA    NA
2014-10-31 37.62    NA    NA
2014-11-30 42.96    NA    NA
2014-12-31 41.57    NA    NA
2015-01-31 44.93    NA    NA
2015-02-28 49.47    NA    NA
2015-08-31    NA 28.11    NA
2015-09-30    NA 14.31    NA
2015-10-31    NA 12.59    NA

注意

可重复输入的形式是:

Lines <- "
Date        Ticker Price
30/04/2006  ZZ     15.95
31/05/2006  ZZ     13.13
30/06/2006  ZZ     13.27
31/07/2006  ZZ     13.66
31/08/2015  ZYNE   28.11
30/09/2015  ZYNE   14.31
31/10/2015  ZYNE   12.59
30/06/2014  ZSPH   28.75 
31/07/2014  ZSPH    28.01
31/08/2014  ZSPH    40.29 
30/09/2014  ZSPH    39.23
31/10/2014  ZSPH    37.62
30/11/2014  ZSPH    42.96
31/12/2014  ZSPH    41.57
31/01/2015  ZSPH    44.93
28/02/2015  ZSPH    49.47
"