r - R:如何解决多个变量的应用函数的错误代码?
问题描述
我有两个 X 和 Y 公司的数据框,每个都包含日期和每日收益,类似于:
firm.data
X Date Return
2019-01-25 0.007523323
2019-01-28 -0.004778901
2019-01-29 0.004801849
Y Date Return
2019-01-25 0.019767443
2019-01-28 -0.001900380
2019-01-29 -0.006473724
我将两者都放在一个名为“firm.data”的列表中,对于每个公司,我想分别添加一个名为“AR”的新列(我正在使用列表,因为我将来会添加更多的公司数据框,但我不会想要分别进行所有计算)。新列“AR”应包含使用匿名函数“ar_calc”计算的数据,该函数包含 CAPM 模型的计算 [公司回报 - (alpha + (beta * market return))]。我已经计算了 X 和 Y 各自的 alpha 和 beta,并将它们存储在两个名为“alpha”和“beta”的列表中。
alphas = c(0.0028, -0.0010)
betas = c(1.7099, 0.9242)
我也有数据框 mkt.data:
mkt.data
Date Return
2019-01-25 0.013621555
2019-01-28 -0.006335916
2019-01-29 0.000760060
要将新列添加到每个数据框,我一直在尝试将 apply 函数与匿名函数结合使用(参见下面的代码)。
但是,这总是返回以下错误:
is.data.frame(.data) 中的错误 || 是.list(.data) || is.environment(.data) :参数“.data”没有默认值
由于我对 R 很陌生,我希望这个解释是有道理的。我将不胜感激任何帮助!
我已经尝试过不同的函数(lapply 和 mapply),但不知道如何在名为“ar_calc ”。
我的代码目前如下所示:
ar_calc <- function (x, y, z) {
mutate(AR = (x$Return - (y + (z * mkt.data$Return))))
}
firm.data.ar <- lapply(firm.data, ar_calc, y = alphas, z = betas)
firm.data.ar
结果应该是一个包含两个数据框 X 和 Y 的列表,这两个数据框都应该有一个新列“AR”。此列的值应使用“ar_calc”函数计算。
解决方案
推荐阅读
- reactjs - 另一个组件中的计数复选框
- c# - 如何在 mvc 5 中启用迁移
- ajax - 除非客户端调用者暂停/中断(通过警报),否则服务器端方法不会写入数据库
- time - 如何在代码中的计时器中每过去 X 分钟向变量添加 +1
- azure - Delete content of Azure pipeline blob storage via Azure release
- c# - 如何更改 ToolStripItems 的背景颜色?
- bioinformatics - 生物模型的实现
- typescript - 直接使用与使用泛型时,条件类型的结果不同
- python-3.x - flask_sqlalchemy 模块找不到错误
- git - Gradle-release-plugin 更新被拒绝,因为您当前分支的尖端落后