Click here to view a screenshot for the excel file
想象一下这些是四家不同公司的股价。 在第一列,您可以看到YY.MM.DD和2010年几天的日期 在第一行你看到公司 - 没有。像101,102 ...... 因此,公司101在今年的第一天股票价格为4,555美元。
现在我必须在R中为eventstudies
包创建一个动物园系列。
Click here to view a screenshot for the description
创建这样的格式的最快方法是什么?我有很多尝试,但我没有得到正确的解决方案。值必须如下所示:
Click here to view a screenshot for the final zoo series
日期现在格式为YYYY-MM-DD。如您所见,我们在此zoo
系列中有一些带负值的值。因此它显示了从第1天到第2天的变化。
我的最终zoo
系列将为公司101显示从2010-01-04开始的每天+1值。
答案 0 :(得分:0)
要转换日期,请使用
new_data_variable <- as.Date(old_date_variable, "%m.%d.%y")
如果你想重塑数据,有很多选择,但我不确定你在这方面需要什么。
答案 1 :(得分:0)
我认为最简单的方法是将as.xts()与seq.Date()结合使用,如下所示:
startdate <- as.Date("2010-01-01")
enddate <- as.Date("2010-12-31")
timeseries <- as.xts(x = seq.Date(from = startdate, to = enddate, by = "1 day"))
修改
也许这更接近你想要的东西:
x <- readxl::read_excel("filename.xlsx")
x$X__1 <- lubridate::dmy(x$X__1)
as.zoo(x)
答案 2 :(得分:0)
简单:
library(zoo)
library(openxlsx)
sheet <- read.xlsx("<path to your excel doc.xlsx>")
dates <- as.Date(sheet[[1]], format = "%m.%d.%y")
# if this doesn't work, replace 1 with your column name
startdate <- min(dates)
enddate <- max(dates)
dates <- seq(startdate, enddate, by = "day")
dates_zoo <- as.xts(dates)