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

使用dplyr实现按年份的条件计数与资金汇总问题求助

按年份分组统计指定资产数量与资金汇总

数据集构造

df <- data.frame(year = c(2018, 2018, 2018, 2019, 2019), 
                 navfund = c(2000, 1000, 1200, 1100, 2000), 
                 Asset = c('s', 'f', 's', 'h', 's'))

需求

按年份分组,完成两个统计:

  • 每年中Asset为's'的记录数量
  • 每年navfund的汇总值

原代码问题分析

你提供的代码存在几处语法和逻辑错误:

  • R对大小写敏感,原数据集列名为year,代码里误写为Year,且group_by后多了多余逗号
  • summarise内语法混乱,将两个统计项错误嵌套在n_distinct中,正确做法是分开定义统计字段
  • 判断Asset是否为's'时,用了赋值符号=而非比较符号==,且原数据中是小写's',代码里写了大写"S",会导致统计结果为0
  • 代码末尾缺少闭合括号,导致语法不完整
  • 不需要n_distinct(navfund),需求是汇总值,应该用sum(navfund)

正确代码

library(dplyr)

df %>%
  group_by(year) %>%
  summarise(
    count_asset_s = sum(Asset == 's'),  # 统计每年Asset为's'的数量
    total_navfund = sum(navfund)        # 计算每年navfund的总和
  )

运行结果

# A tibble: 2 × 3
   year count_asset_s total_navfund
  <dbl>         <int>         <dbl>
1  2018             2          4200
2  2019             1          3100

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 06:50:50