R 在Lappy下使用自定义函数时出错

R 在Lappy下使用自定义函数时出错,r,list,group-by,dplyr,lapply,R,List,Group By,Dplyr,Lapply,需要帮助!我有一个数据帧的列表,每个数据帧的长度和格式都相同: > 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

需要帮助!我有一个数据帧的列表,每个数据帧的长度和格式都相同:

> 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)
}
随后出现警告信息:

var2*var3中出错:二进制运算符的非数值参数


然后我检查了
月报
市值
的类别,它们都是数字。我是R的noob,我不确定计算的方法,也欢迎任何替代方案

你需要
!!var2
!!var3
与您使用的相同
!!var1
对于调试,在尝试在整个列表中映射或应用函数之前,应检查是否可以在单个数据帧上成功调用函数。但是您也没有在
lappy
中调用您的函数-您正在调用一个名为
组的函数。为什么?@camille非常感谢你!我修正了var2和var3,它成功了!错误的原因是我完全不知道列表中的计算,所以我搜索了其他类似的问题,并根据它们的解决方案构建了函数。感谢您指出,名为
group
的函数是一个复制错误代码的键入错误,我会更正它。
lapply(train_R_new_env, function(x) group(x,Date,Monthly_return,Marketcap))