r - 将二变量模型应用于多个组
问题描述
我的数据与每只股票的每日收益直接列在另一只之后,如下所示:
库存 | 日期 | 退货 | 回报市场 |
---|---|---|---|
库存 1 | 3月1日 | 1% | 2% |
库存 1 | 3月2日 | 0.5% | 1% |
库存 1 | 3 月 3 日 | 3% | 0.7% |
库存 2 | 3月1日 | 5% | 2% |
库存 2 | 3月2日 | 3% | 1% |
库存 2 | 3 月 3 日 | 4% | 0.7% |
库存 3 | 3月1日 | -1% | 2% |
库存 3 | 3月2日 | 0.2% | 1% |
库存 3 | 3 月 3 日 | 6% | 0.7% |
它包含 2000 只股票,而且比三天多得多,但这是一个简化版本。
我想应用模型“MarketModel”,它将一个变量作为股票收益,一个作为市场收益。这将在数据框中的每只股票上完成。因此,它首先将模型应用于库存 1,然后沿着列表向下连续到库存 2,一直到最后。可以在此处找到有关模型的更多信息,但非常简单: https ://www.rdocumentation.org/packages/eventstudies/versions/1.2.2/topics/marketModel
然后我想将结果放入另一个数据框中,其中列出了每只股票的不同变量。
库存 | 其他变量 | 模型结果 |
---|---|---|
库存 1 | 其他值 | 库存 1 的结果 |
库存 2 | ... | 库存 2 的结果 |
库存 3 | ... | 股票 3 的结果 |
... | ... | ... |
库存 2000 | ... | ... |
我是 R 的初学者,非常感谢任何可以帮助我的人!
解决方案
你可以使用lapply
函数和split
函数。
该split
功能将帮助您按股票列出数据,如下所示:
l <- split(data, data$Stock)
现在l
是数据框列表。然后,您可以将所需的模型应用于所有 df lapply
,如下所示:
m <- lapply(l,modelfunction, formula=return_market~return_stock)
现在m
是按库存列出的型号列表。
推荐阅读
- performance - 从频率值计算风速
- python - 使用 peewee 如何连接到现有的 SQLite 数据库以进行只读
- c# - ListView 内的 Xamarin 表单用户控件绑定
- typo3 - 如何在 TYPO3 中上传 PDF 文件并通过电子邮件发送?
- json - Angular 5 Observable 映射到 Json 数组
- ubuntu - 在 docker build 的一个步骤中在容器中运行后台进程
- r - 参数名称函数 R
- python - 使用flask.app.test_client()测试Flask应用程序时如何在python Flask中指定标头?
- php - Pimcore:保存对象的新版本但不发布此版本
- asp.net-core-identity - 如何在视图中获取 Asp.net Core Identity 用户