R: Как я могу решить код ошибки для применения функции для нескольких переменных? - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть два фрейма данных для фирм 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 [твердый доход - (альфа + (бета * рыночный доход))]].Я уже вычислил соответствующие альфа и бета-версии для X и Y и сохранил их в двух списках, называемых «альфа» и «бета».

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) ||is.list (.data) ||is.environment (.data): Аргумент ".data" отсутствует без значения по умолчанию

Поскольку я довольно плохо знаком с R, надеюсь, это объяснение имеет смысл.Буду признателен за любую помощь в этом!

Я уже пробовал разные функции (lapply и mapply), но не знаю, как рассчитать новый столбец с тремя переменными (точные данные для X и Y, альфа для X и Y и бета-версии для X и Y)в функции "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_calc".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...