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

R语言分组后对不同字段应用不同汇总函数的报错问题

问题排查与正确实现

错误原因分析

  • 第一段代码错误:误用count函数,count()是dplyr中用于快速分组计数的顶层函数,不能直接放在across()内部作为操作函数;若要实现计数,应使用n()(统计组内行数)或n_distinct()(统计去重后的BookingID数量)。
  • 第二段代码错误:在across()中传递函数时,错误给n()和sum()添加了括号。across()需要接收函数对象而非函数执行结果,因此应去掉括号,直接传入函数名。

正确实现方式

方式1:直接指定字段与操作(简洁推荐)

GpsService_Bokn_Dist <- truck_log %>%
  select(!Minimum_kms_to_be_covered_in_a_day) %>%
  group_by(GpsProvider) %>%
  summarise(
    # 统计每组BookingID的行数,若需去重计数替换为n_distinct(BookingID)
    booking_count = n(),
    # 对距离字段求和,na.rm=TRUE用于忽略缺失值
    total_distance = sum(TRANSPORTATION_DISTANCE_IN_KM, na.rm = TRUE)
  )

方式2:使用across语法实现

GpsService_Bokn_Dist <- truck_log %>%
  select(!Minimum_kms_to_be_covered_in_a_day) %>%
  group_by(GpsProvider) %>%
  summarise(
    across(BookingID, ~n(), .names = "booking_count"),
    across(TRANSPORTATION_DISTANCE_IN_KM, sum, na.rm = TRUE, .names = "total_distance")
  )

内容的提问来源于stack exchange,提问作者FASASI Kamorudeen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 22:01:19