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

R语言:统计日期大于另一日期的次数及生成基于列值次数的新值

嘿,别慌!这类统计需求在日常数据分析里太常见了,我给你拆解两种最常用的实现方式,你可以根据自己的工具偏好来选:

场景1:用Excel快速实现

1. 统计日期大于另一日期的次数

假设你有两列日期数据:A列=日期1,B列=日期2,要统计「日期1 > 日期2」的总行数,直接用这两个公式就行:

  • 最直观的写法:=SUMPRODUCT(--(A2:A100 > B2:B100))

    这里的--是把布尔值(True/False)转换成数字1/0,SUMPRODUCT会自动求和,得到符合条件的次数

  • 如果你的Excel版本支持动态数组,也可以用:=COUNT(IF(A2:A100 > B2:B100, 1, "")),旧版按Ctrl+Shift+Enter执行,新版直接回车即可

2. 基于某列值的出现次数生成新值

假设你要统计C列=类别中每个值的出现次数,在D2单元格输入公式后下拉填充即可:

  • 显示每行对应类别的出现次数:=COUNTIF(C:C, C2)
  • 如果只想生成去重后每个类别的计数,可以先提取唯一值:=UNIQUE(C:C),再用COUNTIF(C:C, 唯一值单元格)对应计数
场景2:用Python Pandas批量处理

如果你的数据量很大,用代码处理更高效,这里以Pandas为例:
首先先构造样例数据(你可以替换成自己的数据源):

import pandas as pd

# 模拟你的数据源
df = pd.DataFrame({
    "日期1": pd.date_range("2024-01-01", periods=10),
    "日期2": pd.date_range("2023-12-28", periods=10),
    "类别": ["A", "B", "A", "C", "B", "A", "C", "C", "B", "A"]
})

1. 统计日期大于另一日期的次数

# 先新增一列标记每行是否符合条件
df["日期1大于日期2"] = df["日期1"] > df["日期2"]
# 统计总次数(布尔值True=1,False=0,sum直接得到次数)
total_count = df["日期1大于日期2"].sum()
print(f"日期1大于日期2的次数:{total_count}")

2. 基于列值出现次数生成新值

# 给每行添加对应类别的出现次数
df["类别出现次数"] = df.groupby("类别")["类别"].transform("count")
# 如果要统计去重后的类别总数
unique_category_count = df["类别"].nunique()
print(f"唯一类别数量:{unique_category_count}")

如果你的期望输出有更具体的格式(比如要按类别分组统计日期符合条件的次数),可以补充下示例细节,我再帮你调整方案~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:15:04