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

R语言如何筛选2009-2018年每年至少出现一次的企业观测值

实现方法(R语言)

推荐使用dplyr包实现,代码最简洁易读:

步骤逻辑

  1. 先计算统计周期的总年数:2009-2018共10年
  2. 按企业IDcnpjcei分组,统计每个企业出现的不重复年份数量
  3. 仅保留不重复年份数等于总年数的企业的全部观测记录

代码实现

library(dplyr)
# 计算统计周期总年数
total_years <- length(2009:2018)
# 筛选符合要求的记录
result <- df %>%
  group_by(cnpjcei) %>%
  filter(n_distinct(year) == total_years) %>%
  ungroup()

说明

  • n_distinct(year)会自动统计每个企业对应出现的不重复年份数量
  • 筛选逻辑会保留符合要求的企业的全部观测,同一年的多条记录都会被保留,完全匹配需求

如果你习惯用base R实现,也可以用以下代码:

# 计算总年数
total_years <- length(2009:2018)
# 统计每个企业的不重复年份数
year_count <- aggregate(year ~ cnpjcei, df, function(x) length(unique(x)))
# 筛选符合要求的企业ID
valid_ids <- year_count$cnpjcei[year_count$year == total_years]
# 提取对应记录
result <- df[df$cnpjcei %in% valid_ids, ]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 00:24:01