Ошибки при использовании самоопределяемой функции под lapply - PullRequest
0 голосов
/ 01 июля 2018

нужна помощь! У меня есть list фреймов данных, и каждый dataframe имеет одинаковую длину и формат:

> print(train_I_new_env[["Resample01.train"]])
          variable       Date Marketcap Monthly_return asset4_new_EnvScore
4     US90214J1016 2016-04-29   1421622   2.153255e-01             11.1063
5     US90214J1016 2016-05-31   1421622  -6.801530e-03             11.1063
7     US90214J1016 2016-07-29   1421622   1.734417e-01             11.1063
8     US90214J1016 2016-08-31   1421622   1.023900e-02             11.1063
9     US90214J1016 2016-09-30   1421622   8.017330e-02             11.1063

Я хочу применить процесс расчета к каждому из фреймов данных. Итак, я сначала сформировал функцию с dplyr:

group <- function(df, var1, var2, var3){
  var1 <-  enquo(var1); var2 <-  enquo(var2); var3 <-  enquo(var3);
  df %>% 
    group_by(!!var1) %>% 
    summarise(return = sum(var2*var3, na.rm = TRUE)/ sum (var3, na.rm = 
TRUE)*100)
}

Затем применил эту функцию под lapply:

lapply(train_R_new_env, function(x) group(x,Date,Monthly_return,Marketcap))

Затем получено предупреждающее сообщение:

Ошибка в var2 * var3: нечисловой аргумент для бинарного оператора

Затем я проверил класс Monthly_return и Marketcap, и они оба числовые. Я новичок в R, и я не уверен в способе вычисления, любое альтернативное решение также приветствуется.

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