R:如何解决将代码应用于多个变量的错误代码?

时间:2019-04-26 14:26:15

标签: r

我为公司X和Y有两个数据框,分别包含日期和每日收益,类似于:

alphas = c(0.0028, -0.0010)
betas = c(1.7099, 0.9242)

我将两者都放在一个名为“ firm.data”的列表中,并且我想分别为每个公司添加一个名为“ AR”的新列(我正在使用列表,因为我将来会添加更多的公司数据框,不想单独进行所有计算)。新列“ AR”应包括使用匿名函数“ ar_calc”计算的数据,该函数包含CAPM模型的计算[公司收益-(alpha +(beta *市场收益))]。我已经计算了X和Y各自的alpha和beta,并将它们存储在称为“ alpha”和“ beta”的两个列表中。

mkt.data   
Date          Return  
2019-01-25    0.013621555
2019-01-28   -0.006335916
2019-01-29    0.000760060

我也有数据帧mkt.data:

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

要将新列添加到每个数据帧,我一直在尝试将apply函数与匿名函数结合使用(请参见下面的代码)。

但是,这总是返回以下错误:

  

is.data.frame(.data)||中的错误is.list(.data)|| is.environment(.data):参数“ .data”在没有默认值的情况下丢失

由于我是R的新手,所以我希望这种解释是有意义的。我将不胜感激!

我已经尝试了不同的函数(lapply和mapply),但是不知道如何在函数中使用三个变量(X和Y的确认数据,X和Y的alpha数据以及X和Y的beta)计算新列称为“ ar_calc”。

我的代码当前如下所示:

{{1}}

结果应该是一个包含两个数据帧X和Y的列表,这两个数据帧都应有一个新列“ AR”。此列的值应使用“ ar_calc”函数计算。

0 个答案:

没有答案