You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 02:02:34