我正在进行一项事件研究evReturn
函数从erer
包裹。
目的是获得每个公司的超常收益以及所有公司的平均超额收益。我无法获得平均回报,因为该函数对每个公司执行单独的执行,但不会同时对所有公司执行一次,尽管这可以通过 for 循环实现。我似乎无法得到正确的循环。
我尝试过这个方法:
1.
install.packages("erer")
library(erer)
i <- 1
hh2 <- list()
for(i in 1:3){
firms <- names(dataset4)[i+1]
dates <- eventdates2[i]
print(firms)
print(dates)
print(i)
hh2[[i]] <-
evReturn(y=dataset4, firm = firms, event.date=dates, y.date="Timestamp",
index="NASDAQ", event.win = 3, est.win= 250, digits=4)
}
erer 包中的示例,daEsa 是包中包含的数据集。
# event analysis for one firm and one event window
hhreturn <- evReturn(y = daEsa, firm = "wpp", y.date = "date",
index = "sp500", est.win = 250, digits = 3, event.date = 19990505,
event.win = 5)
# event analysis for many firms and one event window
hh2return2 <- update(hhreturn, firm = c("tin", "wy", "pcl", "pch"))
# event analysis for many firms and many event windows: need a for loop
最后一条评论正是我所需要的。