group_by后调用count函数触发UseMethod()报错的解决问询
问题解决:分组生成等权重列的报错修复
错误原因
你在mutate()里调用count()的用法有误——count()是用来生成包含分组计数的新数据框的函数,不能直接嵌入mutate的计算逻辑中。当你把marketdate(Date类型对象)传给count()时,R找不到对应Date类的count方法,因此抛出报错。
正确实现代码
要在分组内获取每组的记录数,应该使用n()函数(dplyr内置函数,分组环境下会返回当前组的观测数量):
# Add ff_equal column df <- df |> group_by(marketdate) |> mutate(ff_equal = 100 / n()) |> ungroup()
补充说明
- 若只是想单独查看每个
marketdate对应的记录数,可以单独执行count():df |> count(marketdate) - 从dplyr 1.1.0版本开始,也可以用
cur_group_size()替代n(),效果完全一致:mutate(ff_equal = 100 / cur_group_size())
内容的提问来源于stack exchange,提问作者Richard
相关产品推荐
相关产品推荐

