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

按周分组统计符合逻辑条件的行数(库存车辆统计需求)

按周统计符合条件的库存车辆数量

我尝试按周统计库存中满足DateAdded < Contract Date的车辆数量,但多次尝试的代码都没能得到正确结果,以下是我的尝试:

NCInv <- WeeklyVariableData$New %>%
  group_by(WeekYear) %>%
  nrow(WeeklyVariableData$New[WeeklyVariableData$New$DateAdded < WeeklyVariableData$New$`Contract Date`])

NCInv <- WeeklyVariableData$New %>%
group by(WeekYear) %>%
nrow(DateAdded < `Contract Date`)

NCInv <- WeeklyVariableData$New%>%
  group_by(WeekYear) %>%
  summarize(NCInv = sum(DateAdded < `Contract Date`))

问题分析

  1. 前两段代码误用了nrow():nrow()是用于获取整个数据框行数的基础函数,不能在dplyr的分组管道中直接用来统计分组内的符合条件行数;第二段代码还存在语法错误——group by应该写成group_by()。
  2. 第三段代码逻辑正确,但需要注意两个细节:确保日期列是标准日期格式,以及处理可能存在的缺失值。

正确代码实现

# 先转换日期列格式(如果原始数据不是日期类型)
WeeklyVariableData$New$DateAdded <- as.Date(WeeklyVariableData$New$DateAdded)
WeeklyVariableData$New$`Contract Date` <- as.Date(WeeklyVariableData$New$`Contract Date`)

# 按周分组统计符合条件的车辆数
NCInv <- WeeklyVariableData$New %>%
  group_by(WeekYear) %>%
  summarize(NCInv = sum(DateAdded < `Contract Date`, na.rm = TRUE))

代码说明

  • group_by(WeekYear):按WeekYear字段对数据分组
  • summarize(NCInv = sum(DateAdded < Contract Date, na.rm = TRUE)):
    • 逻辑表达式DateAdded < Contract Date会返回布尔值,sum()会将TRUE视为1、FALSE`视为0,求和结果即为每组符合条件的车辆数量
    • na.rm = TRUE参数用于忽略因日期缺失产生的NA值,避免统计结果出现无效值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 04:05:24