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

在R中实现类似COUNTIF功能,为公交数据新增起点站频次列

解决RStudio中给大交通数据集添加起点站出现次数列的问题

Got it, handling large public transit datasets in RStudio is totally doable without Excel—here are two efficient, scalable methods to add that origin station count column you need:

方法1:用dplyr(tidyverse生态,直观易读)

如果平时习惯用tidyverse工具链,这个方法上手快、代码逻辑清晰:

  1. 先确保你安装并加载了dplyr包(没装的话先跑 install.packages("dplyr"))
  2. 通过分组+新增列的方式完成统计:
library(dplyr)

# 假设你的数据框名为df,新统计列命名为origin_count
df <- df %>%
  group_by(`Origin Station`) %>%  # 列名含空格,需用反引号包裹
  mutate(origin_count = n()) %>%  # n()自动统计每组的行数,也就是站点总出现次数
  ungroup()  # 取消分组状态,避免影响后续其他操作

方法2:用data.table(超大数据集首选,速度拉满)

如果你的数据量真的大到离谱(百万级甚至更多行),data.table的内存效率和运算速度会比dplyr更出色:

  1. 安装并加载data.table包(install.packages("data.table"))
  2. 转格式后直接完成分组统计:
library(data.table)

# 将普通数据框转为data.table格式(也可以直接用fread()读取原始数据,效率更高)
setDT(df)

# 添加新列,.N是data.table内置变量,代表每组的行数
df[, origin_count := .N, by = `Origin Station`]

快速验证结果

你可以挑个目标站点(比如"14 Street-Union Sq")检查是否符合预期:

# dplyr方式筛选验证
df %>% filter(`Origin Station` == "14 Street-Union Sq") %>% select(`Origin Station`, origin_count)

# data.table方式筛选验证
df[`Origin Station` == "14 Street-Union Sq", .(`Origin Station`, origin_count)]

所有该站点的记录都会显示同一个总出现次数,完全满足你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:13:35